angles et longueurs des côtés d'un triangle
Publié : sam. oct. 02, 2010 5:45 pm
Pour construire des exercices sur les triangles, j'utilise ceci:
puis:
En faisant:
je n'obtiens pas l'angle droit en C, le pb venant me semble-t-il de b dans la fonction Angle_degre
Mais si je remplace C:=point(-2,2) par C:=point(-2,2.0) alors j'ai l'angle droit.
Si quelqu'un a une idée....
Code : Tout sélectionner
Angle_degre(A,B,C):={
local a,b,c,val,lm;
lm:=min(longueur(A,B),longueur(A,C))/10;
a:=A;
b:=A+(B-A)*(lm/longueur(A,B));
c:=A+(C-A)*(lm/longueur(A,C));
si simplifier(angle(A,B,C)-pi/2)==0 alors
return carre(a,b),legende(affixe(similitude(a,sqrt(2),pi/4,b)),"90°");
fsi;
si simplifier(angle(A,B,C)+pi/2)==0 alors
return carre(a,c),legende(affixe(similitude(a,sqrt(2),pi/4,c)),"-90°");
fsi;
val:=round(angle(A,B,C)*180/pi,1);//valeur en degré à 0.1 près
return angle(A,B,C,val+"°");
}
:;
Code : Tout sélectionner
Triangle(A,B,C):={
local L;
S:=simplifier((1/2)*longueur(B,C)*sin(abs(angle(A,B,C))));
L:=triangle(A,B,C),
Angle_degre(A,B,C),Angle_degre(B,C,A),Angle_degre(C,A,B),
legende(milieu(A,B),cat(longueur(A,B))),
legende(milieu(B,C),cat(longueur(B,C))),
legende(milieu(C,A),cat(longueur(C,A))),
legende(point((1/3)*(A+B+C)),"S="+S);
return L;
}:;
Code : Tout sélectionner
A:=point(-4,-1);B:=point(4,-2);C:=point(-2,2);Triangle(A,B,C);
Mais si je remplace C:=point(-2,2) par C:=point(-2,2.0) alors j'ai l'angle droit.
Si quelqu'un a une idée....