Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def quest_ALA(exo, cor):
"""on donne deux angles et la longueur du côté commun"""
""" angBAC et angABC et AB=c"""
A, B, C = geo.choix_points(3)
nom = shuffle_nom([A, B, C])
c = 0.1 * random.randint(40, 70) # longueur AB
angBAC = 5 * random.randint(4, 12)
angABC = 5 * random.randint(4, 12)
exo.append(_(u"\\item Trace un triangle $%s$ tel que $%s%s=\\unit[%s]{cm}$, $\\widehat{%s%s%s}=%s\\degres$ et $\\widehat{%s%s%s}=%s\\degres$")
% (nom, A, B, decimaux(c), B, A, C, angBAC, A, B, C, angABC))
cor.append(_(u"\\item Trace un triangle $%s$ tel que $%s%s=\\unit[%s]{cm}$, $\\widehat{%s%s%s}=%s\\degres$ et $\\widehat{%s%s%s}=%s\\degres$\\par")
% (nom, A, B, decimaux(c), B, A, C, angBAC, A, B, C, angABC))
x_C = (c * tan(angABC)) / (tan(angABC) + tan(angBAC))
y_C = x_C * tan(angBAC)
cor.append(u"\\begin{pspicture}(-0.4,-1)(%.3f,%.3f)" % (c + 1, y_C + 1))
cor.append(u"\\pstTriangle(0,0){%s}(%.3f,0){%s}(%.3f,%.3f){%s}" % (A, c, B, x_C, y_C, C))
cor.append(u"\\pstLineAB[nodesepB=-1]{%s}{%s}\\pstLineAB[nodesepB=-1]{%s}{%s}" % (A, C, B, C))
cor.append(cotation((0, 0), (c, 0), decimaux(c), couleur="enonce"))
cor.append(u"\\color{enonce}\\pstMarkAngle[linecolor=enonce]{%s}{%s}{%s}{%s\\degres}" % (B, A, C, angBAC))
cor.append(u"\\color{enonce}\\pstMarkAngle[linecolor=enonce]{%s}{%s}{%s}{%s\\degres}" % (C, B, A, angABC))
def quest_rectangle_diag(exo, cor):
"""on donne un rectangle ABCD avec un côté AB et une diagonale AC"""
A, B, C, D = geo.choix_points(4)
nom = shuffle_nom([A, B, C, D])
L = random.randint(40, 60) # AB mesure entre 4cm et 7cm, tracé horizontalement
Diag = 0.1 * random.randint(L + 10, 70) # +1.1 pour éviter les problèmes d'arrondi
L = 0.1 * L
# Calcul pour tracer
angBAC = math.degrees(math.acos(float(L) / float(Diag)))
x_C = L
y_C = x_C * tan(angBAC)
exo.append(_(u"\\item Trace un rectangle $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $%s%s=\\unit[%s]{cm}$.\\par")
% (nom, A, B, decimaux(L), A, C, decimaux(Diag)))
cor.append(_(u"\\item Trace un rectangle $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $%s%s=\\unit[%s]{cm}$.\\par")
% (nom, A, B, decimaux(L), A, C, decimaux(Diag)))
# figure
cor.append("\\figureadroite{")
cor.append(u"\\begin{pspicture}(-0.4,-1)(%.3f,%.3f)" % (L + 0.4, y_C + 1))
def quest_rectangle_angle(exo, cor):
"""On donne un rectangle ABCD avec le côté AB et l'angle BAC"""
A, B, C, D = geo.choix_points(4)
nom = shuffle_nom([A, B, C, D])
L = random.randint(40, 60) # AB mesure entre 4cm et 7cm, tracé horizontalement
angBAC = random.randint(25, 65)
L = 0.1 * L
# Calcul pour tracer
x_C = L
y_C = x_C * tan(angBAC)
exo.append(_(u"\\item Trace un rectangle $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, B, decimaux(L), B, A, C, angBAC))
cor.append(_(u"\\item Trace un rectangle $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, B, decimaux(L), B, A, C, angBAC))
cor.append("\\figureadroite{")
cor.append(u"\\begin{pspicture}(-0.4,-1)(%.3f,%.3f)" % (L + 0.4, y_C + 1))
cor.append(u"\\pstTriangle(0,0){%s}(%.3f,0){%s}(%.3f,%.3f){%s}" % (A, L, B, x_C, y_C, C))
def quest_LAL(exo, cor):
"""on donne un angle et les longueurs de ses deux côtés"""
""" angBAC et AB=c et AC=b"""
A, B, C = geo.choix_points(3)
nom = shuffle_nom([A, B, C])
c = 0.1 * random.randint(40, 70) # longueur AB
b = 0.1 * random.randint(20, 100) # longueur BC
angBAC = 3 * random.randint(7, 50) # BAC mesure entre 21° et 150°
exo.append(_(u"\\item Trace un triangle $%s$ tel que $%s%s=\\unit[%s]{cm}$, $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$")
% (nom, A, B, decimaux(c), A, C, decimaux(b), B, A, C, angBAC))
cor.append(_(u"\\item Trace un triangle $%s$ tel que $%s%s=\\unit[%s]{cm}$, $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, B, decimaux(c), A, C, decimaux(b), B, A, C, angBAC))
cor.append(u"\\begin{pspicture}(%.3f,%.3f)(%.3f,%.3f)" % (min(0, b * cos(angBAC)) - 0.4, -1, max(b, b * cos(angBAC)) + 0.4, b * sin(angBAC) + 1))
cor.append(u"\\pstTriangle(0,0){%s}(%.3f;%.3f){%s}(%.3f,0){%s}" % (A, b, angBAC, C, c, B))
cor.append(u"\\color{enonce}\\pstMarkAngle[linecolor=enonce]{%s}{%s}{%s}{%s\\degres}" % (B, A, C, angBAC))
cor.append(u"\\pstLineAB[nodesepB=-1]{%s}{%s}" % (A, C))
cor.append(u"\\pstRotation[RotAngle=7,PointSymbol=none,PointName=none]{%s}{%s}[C_1]" % (A, C))
cor.append(u"\\pstRotation[RotAngle=-7,PointSymbol=none,PointName=none]{%s}{%s}[C_2]" % (A, C))
cor.append(u"\\pstArcOAB[linecolor=calcul]{%s}{C_2}{C_1}" % (A))
def quest_losange_CD(exo, cor):
"""On donne un losange avec la longueur d'un côté et la mesure d'un angle entre un côté et une diagonale"""
A, B, C, D = geo.choix_points(4)
nom = shuffle_nom([A, B, C, D])
AC = 0.1 * random.randint(40, 60) # AB mesure entre 4cm et 7cm, tracé horizontalement
angBAC = random.randint(25, 75)
# Calcul pour tracer
x_D = AC / 2
y_D = AC / 2 * tan(angBAC)
exo.append(_(u"\\item Trace un losange $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, C, decimaux(AC), B, A, C, angBAC))
cor.append(_(u"\\item Trace un losange $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, C, decimaux(AC), B, A, C, angBAC))
# Rédaction
cor.append(_(u" Comme $%s$ est un losange, je sais que $\\widehat{%s%s%s}=\\widehat{%s%s%s}=\\widehat{%s%s%s}=\\widehat{%s%s%s}=%s\\degres$.")
% (nom, B, A, C, A, C, B, A, C, D, C, A, D, angBAC))
# Programme de construction
cor.append(u"\\begin{enumerate}")
def quest_losange_CDbis(exo, cor):
"""On donne un losange avec la longueur d'un côté et la mesure d'un angle entre un côté et une diagonale"""
A, B, C, D = geo.choix_points(4)
nom = shuffle_nom([A, B, C, D])
AC = 0.1 * random.randint(40, 60) # AB mesure entre 4cm et 7cm, tracé horizontalement
angCDA = 2 * random.randint(15, 70)
# Calcul pour tracer
angCAD = (180 - angCDA) / 2
x_D = AC / 2
y_D = AC / 2 * tan(angCAD)
exo.append(_(u"\\item Trace un losange $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, C, decimaux(AC), C, D, A, angCDA))
cor.append(_(u"\\item Trace un losange $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, C, decimaux(AC), C, D, A, angCDA))
# Rédaction des calculs
cor.append(_(u"Les quatre côtés du losange sont de même longueur donc $%s%s=%s%s=%s%s=%s%s$.\\par") % (A, B, B, C, C, D, D, A))
cor.append(_(u"Ainsi, le triangle $%s%s%s$ est isocèle en $%s$ et je peux calculer la mesure des angles $\\widehat{%s%s%s}=\\widehat{%s%s%s}$.\\par")
def MesureAngles():
nb_angles = 4
(xmax, ymax) = (18, 8) # taille de l'image en cm
lnoms = []
lpoints = []
cpt = 0
while len(lpoints) < nb_angles:
if cpt > 1000:
lpoints = []
cpt = 0
lpoints = cree_angles(nb_angles, xmax, ymax)
cpt = cpt + 1
tmpl = Geometrie.choix_points(3 * nb_angles)
for i in range(nb_angles):
lnoms.append(tuple(tmpl[3 * i:3 * i + 3]))
exo = ["\\exercice", "Nommer, mesurer et donner la nature de chacun des angles suivants :\\par "]
cor = ["\\exercice*", "Nommer, mesurer et donner la nature de chacun des angles suivants :\\par "]
figure(exo, cor, lpoints, lnoms, xmax, ymax)
reponses(exo, cor, lpoints, lnoms)
return (exo, cor)
def rec_thales(exo, cor):
noms = choix_points(5) # les noms des sommets
valeurs = valeurs_reciproque_thales()
exo.append(tex_fig_rec_thales(noms, valeurs))
exo.append(tex_enonce_rec_thales(noms, valeurs) + '\\vspace{2cm}}') #le dernier '}' ferme le bloc exercice
cor.append(tex_fig_rec_thales(noms, valeurs))
cor.append(tex_enonce_rec_thales(noms, valeurs) +
"\\par\\dotfill{}\\\\}\n")
cor.append(tex_resolution_rec_thales0(noms, valeurs))
cor.append(tex_resolution_rec_thales1(noms, valeurs))
def quest_losange_CC(exo, cor):
"""On donne un losange avec la longueur d'un côté et un angle entre côtés"""
# diagonale ou demi-diagonale
A, B, C, D = geo.choix_points(4)
nom = shuffle_nom([A, B, C, D])
AB = 0.2 * random.randint(15, 25) # AB mesure entre 4cm et 8cm, tracé horizontalement
angBAD = random.randint(30, 150)
# Calcul pour tracer
x_D = AB * cos(angBAD)
y_D = y_C = AB * sin(angBAD)
x_C = x_D + AB
exo.append(_(u"\\item Trace un losange $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, B, decimaux(AB), B, A, D, angBAD))
cor.append(_(u"\\item Trace un losange $%s$ tel que $%s%s=\\unit[%s]{cm}$ et $\\widehat{%s%s%s}=%s\\degres$.\\par")
% (nom, A, B, decimaux(AB), B, A, D, angBAD))
cor.append(_(u"Les quatre côtés du losange sont de même longueur donc $%s%s=%s%s=%s%s=%s%s=\\unit[%s]{cm}$ ;") % (A, B, B, C, C, D, D, A, decimaux(AB)))
cor.append(u"\\begin{enumerate}")
cor.append(_(u"\\item On trace le côté $[%s%s]$ puis on mesure l'angle $\\widehat{%s%s%s}=%s\\degres$ ;") % (A, B, B, A, D, angBAD))