Triangles

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Aller en bas

Triangles

Message  P.Fradin le Sam 19 Jan - 21:45

Message d'Alphonse Capriani

Je débute avec TeXgraph et je viens de m'amuser a créer quelques macros pour tracer les cercle circonscrit ou inscrit a un triangle ainsi que pour calculer le centre de gravité, l'orthocentre ...

Voici le code de ces macros.

Code:
% Centre de Gravité :
16#Gravite#[{Gravite(<A>,<B>,<C>,<opt>)
Calcule et dessine le centre de gravité du triangle ABC.
Si opt=1, les médianes sont dessinées}
DotStyle:=bigdot,
G:=(%1+%2+%3)/3,
Point(G),
if %4=1 then
    LineStyle:=dotted,
    Seg(%1,(%2+%3)/2),
    Seg(%2,(%1+%3)/2),
    Seg(%3,(%1+%2)/2)
fi,
G]##

% Orthocentre :
16#Orthoctr#[{Orthoctr(<A>,<B>,<C>,<opt>)
Calcule et dessine l'orthocentre du triangle ABC.
Si opt=1, les hauteur du triangles sont tracées}
DotStyle:=bigdot,
$H1:=perp([%2,%3],%1),
$H2:=perp([%1,%3],%2),
$H3:=perp([%1,%2],%3),
H:=H1 Inter H2,
Point(H),
if %4=1 then
    LineStyle:=dotted,
    Droite(H1[1], H1[2]),
    Droite(H2[1], H2[2]),
    Droite(H3[1], H3[2])
fi,
H]
##

% Centre du cercle circonscrit :
16#Centrecirc#[{Centrecirc(<A>,<B>,<C>,<opt>)
Calcule et dessine le centre du cercle circonscrit ABC.
Si opt=1, les médiatrice des côtés sont déssinées}
DotStyle:=bigdot,
M1:=med(%1,%2),
M2:=med(%2,%3),
M3:=med(%1,%3),
O:=M1 Inter M2,
Point(O),
if %4=1 then
    LineStyle:=dotted,
    Droite(M1[1], M1[2]),
    Droite(M2[1], M2[2]),
    Droite(M3[1], M3[2])
fi,
O]
##

% Cercle circonscrit :
16#Cerclecirc#[{Cerclecirc(<A>,<B>,<C>) : Dessine le cercle circonscrit au triangle ABC}
O:=Centrecirc(%1,%2,%3),
Cercle(O,abs(%1-O))
]##

% Centre du cercle inscrit :
16#Centreinsc#[{Centreinsc(<A>,<B>,<C>,<opt>)
Calcule et dessine le centre du cercle inscrit au triangle ABC.
Si opt=1, les bissectrices des 3 angles sont dessinées}
DotStyle:=bigdot,
B1:=bissec(%1,%2,%3,1),
B2:=bissec(%2,%3,%1,1),
B3:=bissec(%3,%1,%2,1),
P:=B1 Inter B2,
Point(P),
if %4=1 then
    LineStyle:=dotted,
    Droite(B1[1],B1[2]),
    Droite(B2[1],B2[2]),
    Droite(B3[1],B3[2])
fi,
P]
##

% Cercle inscrit :
16#Cercleinsc#[{Cercleinsc(<A>,<B>,<C>) : Dessine le cercle inscrit au triangle ABC}
P:=Centreinsc(A,B,C),
Dr1:=perp([%1,%2],P),
intersect:=Dr1 Inter [%1,%2],
Cercle(P,abs(intersect-P))]##

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Sam 19 Jan - 21:45

Bonsoir Alphonse,

Et bien pour quelqu'un qui débute, le code est très propre!

J'ai noté cependant une petite erreur dans la macro Cercleinsc:

Code:

% Cercle inscrit :
16#Cercleinsc#[{Cercleinsc(<A>,<B>,<C>) : Dessine le cercle inscrit au triangle ABC}
P:=Centreinsc(A,B,C), {<--- ici }
Dr1:=perp([%1,%2],P),
intersect:=Dr1 Inter [%1,%2],
Cercle(P,abs(intersect-P))]##

Il faut mettre P:=Centreinsc(%1,%2,%3).

Pour le reste, juste un conseil, lorsqu'on utilise des variables locales dans des macros (comme c'est le cas ici), on a intérêt à ce que ces variables soient effectivement déclarées locales, pour cela il faut faire précéder la première occurence par le symbole $ (par exemple $M1:= ...), sinon un utilisateur qui se sert de ta macro et qui a déjà une variable globale du même nom, verra sa variable modifiée à chaque exécution de la macro, et il va bien se demander d'où ça vient, il risque de chercher longtemps avant de trouver et va crier au bug! Donc tous les variables locales dans les macros doivent être précédées d'un $, par exemple:

Code:

% Centre du cercle inscrit :
16#Centreinsc#[{Centreinsc(<A>,<B>,<C>,<opt>)
Calcule et dessine le centre du cercle inscrit au triangle ABC.
Si opt=1, les bissectrices des 3 angles sont dessinées}
DotStyle:=bigdot,
$B1:=bissec(%1,%2,%3,1),
$B2:=bissec(%2,%3,%1,1),
$B3:=bissec(%3,%1,%2,1),
$P:=B1 Inter B2,
Point(P),
if %4=1 then
    LineStyle:=dotted,
    Droite(B1[1],B1[2]),
    Droite(B2[1],B2[2]),
    Droite(B3[1],B3[2])
fi,
P]
##


Je voulais dire aussi qu'il y a déjà une commande pour le cercle circonscrit au triangle (ABC):
Code:

Cercle(A,B,C)


En tout cas, félicitations, n'hésite pas si tu as d'autres propositions.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Mer 26 Mar - 1:21

Bonjour

Je n'ai pas encore eu le temps de jouer avec la nouvelle version.
Est-il possible de définir facilement dans TexGraph un point dans un triangle par ses coordonnées homogènes ou trilinéaires (distances aux côtés du triangle, définies à un coefficient multiplicatif près), en fonction de la mesure des angles ou bien en fonction de la longueur des côtés ? Ce serait pour "m'amuser" avec les centres de Kimberling.

http://mathworld.wolfram.com/TrilinearCoordinates.html
http://mathworld.wolfram.com/ExactTrilinearCoordinates.html
http://mathworld.wolfram.com/TriangleCenterFunction.html
http://mathworld.wolfram.com/KimberlingCenter.html


Merci d'avance
Eric

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Mer 26 Mar - 11:51

Bonjour Eric,

J'ai parcouru un peu rapidement le premier lien, il me semble qu'il y a une relation simple entre les coordonnées barycentriques, qui sont des produits mixtes donc des aires, et les coordonnées trilinéaires qui sont les distances aux côtés. Les coordonnées barycentriques d'un point M dans un triangle (ABC) sont (à un facteur près): det(B-M,C-M), det(C-M,A-M), det(A-M,B-M), il suffit alors de les diviser par la longueur du côté correspondant.

Partant de ce principe je propose deux macros de conversion: affixe => coord trilinéaires et inversement coord trilinéaires => affixe.

La macro: trilinear( M, A, B, C): renvoit les coordonnées trilinéaires de M dans le triangle A,B,C sous forme d'une liste de 3 réels. Les points M,A,B,C sont des affixes usuels.

Code:

{ trilinear( M, A,B,C): coordonnées trilinéaires de M dans (ABC) }

[$z:=%1, $a:=%2, $b:=%3, $c:=%4,
 Im(bar(b-z)*(c-z))/abs(b-c),
 Im(bar(c-z)*(a-z))/abs(c-a),
 Im(bar(a-z)*(b-z))/abs(a-b)]

La macro: affix( [alpha, beta, gamma], A, B, C): renvoit l'affixe du point M de coordonnées trilinéaires [alpha, beta, gamma] dans le triangle A,B,C. Les points A,B,C sont des affixes usuels.

Code:

{ affix( [alpha,beta,gamma], A,B,C): affixe du point de coordonnées trilinéaires
  [alpha,beta,gamma] dans le triangle (ABC)}
[$a:=%2, $b:=%3, $c:=%4,
 {coordonnées barycentriques}
 $u:=Copy(%1,1,1)*abs(c-b),
 $v:=Copy(%1,2,1)*abs(a-c),
 $w:=Copy(%1,3,1)*abs(b-a),
 {affixe}
 (u*a+v*b+w*c)/(u+v+w)]

Ceci est sûrement à peaufiner...

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Mer 26 Mar - 16:50

Je te remercie, je vais tâcher de voir ce que je peux faire avec durant les prochaines vacances et si j'arrive à tracer des cubiques isogonales.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Mer 26 Mar - 17:25

Eric Kouris a écrit:Je te remercie, je vais tâcher de voir ce que je peux faire avec durant les prochaines vacances et si j'arrive à tracer des cubiques isogonales.

OK, de mon côté je creuse un peu plus la question quand j'aurai moins de copies!!

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Jeu 9 Oct - 21:53

J'ai laissé de côté les coordonnées trilinéaires pour l'instant mais je vais y revenir.

Mon problème aujourd'hui est de tracer une bout de perpendiculaire (toute la droite, c'est bon, j'ai vu la commande). Donc, j'ai un point P, une droite (AB) (définie par les points A et B) et je souhaite tracer le segment reliant P au pied de la perpendiculaire à (AB) passant par P.

J'ai tenté l'élément utilisateur suivant ... mais sans résultat
Code:

[
E:=Get(Dperp([A,B],P),0) InterL Get(Droite(A,B),0),
Ligne(P,E)
]

(Le but est de tracer la droite de Simson)

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Jeu 9 Oct - 21:57

Bonsoir Eric,

C'est: Seg( P, proj(P,A,B) ) ou Seg( P, proj(P,[A,B]) ), au choix.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Jeu 9 Oct - 22:21

Merci

Voila mon code pour obtenir la droite Simson (il y une demi-droite pour faire joli mais qu'il faut adapter si on change la valeur des paramètres)

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.5#1.5#-1.2#1.5#2.5#2.5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#8##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#A#exp(i*pi)##
15#B#exp(-i*pi/7)##
15#C#exp(1.2*i*pi/5)##
15#P#exp(3*i*pi/5)##
15#F#proj(P,Liste(A,B))##
15#E#proj(P,A,C)##
15#D#proj(P,B,C)##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% objet1 (Cercle)
7#objet1#[ 0,1 ]##
% LabA (Utilisateur)
18##[tMin:=-2,tMax:=2]##
14#LabA#LabelDot(A,"$A$","SO",1)#-1##
% LabB (Utilisateur)
14#LabB#LabelDot(B,"$B$","SE",1)#-1##
% LabC (Utilisateur)
14#LabC#LabelDot(C,"$C$","E",1)#-1##
% objet2 (Ligne Polyg.)
12#objet2#[ A,B,C ]#1#0##
% LabP (Utilisateur)
14#LabP#LabelDot(P,"$P$","NO",1)#-1##
% objet6 (Utilisateur)
14#objet6#[
Seg( P, proj(P,A,B) ),
Seg( P, proj(P,B,C) ),
Seg( P, proj(P,C,A) ),
]#-1##
% LabF (Utilisateur)
14#LabF#LabelDot(F,"$F$","S",1)#-1##
% LabE (Utilisateur)
14#LabE#LabelDot(E,"$E$","SE",1)#-1##
% LabD (Utilisateur)
14#LabD#LabelDot(D,"$D$","E",1)#-1##
% Ddroite7 (Utilisateur)
14#Ddroite7#Ddroite(B,C)#-1##
% objet8 (Droite)
6#objet8#[ D,E ]#0#0##

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Jeu 9 Oct - 22:39

Bonsoir Eric,

Je me suis amusé à modifier légèrement ton code en lui adjoignant le modèle lieu1.mod, maintenant on peut déplacer le point P à la souris sur le cercle:

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.33802120035414#1.30170162036724#-1.11344897588826#1.27728439428639#3.78827652717992#3.78827652717992##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0.5#0.5#0.5#0.5#0#1#1##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#DotAff#-0.51762101491718+0.85320783497217*i##
15#UseDot#1##
15#CtrlColorDot#blue##
15#CtrlDotStyle#cross##
15#CtrlColorAssign#gray##
15#DelayAnim#100##
15#SaveAnim#0##
15#Dotperline#25##
15#Load#InputMac("lieu1.mac")##
15#P#DotAff[1]##
15#A#exp(i*pi)##
15#B#exp(-i*pi/7)##
15#C#exp(1.2*i*pi/5)##
15#F#proj(P,Liste(A,B))##
15#E#proj(P,A,C)##
15#D#proj(P,B,C)##
15#AssignP#[3,Get(Cercle(0,1,%4))]##
% Déclaration des Macros
16#Init#ReCalc()##
16#Name1#P##
% Déclaration des Eléments graphiques
% objet1 (Cercle)
7#objet1#[ 0,1 ]##
% LabA (Utilisateur)
18##[tMin:=-2,tMax:=2]##
14#LabA#LabelDot(A,"$A$","SO",1)#-1##
% LabB (Utilisateur)
14#LabB#LabelDot(B,"$B$","SE",1)#-1##
% LabC (Utilisateur)
14#LabC#LabelDot(C,"$C$","E",1)#-1##
% objet2 (Ligne Polyg.)
12#objet2#[ A,B,C ]#1#0##
% objet6 (Utilisateur)
14#objet6#[
Seg( P, proj(P,A,B) ),
Seg( P, proj(P,B,C) ),
Seg( P, proj(P,C,A) ),
]#-1##
% LabF (Utilisateur)
14#LabF#LabelDot(F,"$F$","S",1)#-1##
% LabE (Utilisateur)
14#LabE#LabelDot(E,"$E$","SE",1)#-1##
% LabD (Utilisateur)
14#LabD#LabelDot(D,"$D$","E",1)#-1##
% Ddroite7 (Utilisateur)
14#Ddroite7#Ddroite(B,C)#-1##
% objet8 (Droite)
6#objet8#[ D,E ]#0#0##
% LabP (Utilisateur)
18##[Width:=8,Color:=8421504,DotStyle:=2]##
14#LabP#LabelDot(P,"P","N",1)#-1##
% angesdroits (Utilisateur)
18##[Width:=2,Color:=0,tMin:=-1.338,tMax:=1.3017,DotStyle:=0]##
14#angesdroits#[angleD(A,F,P,0.25),
angleD(C,E,P,0.25),
angleD(B,D,P,0.25)
]#-1##

Ce fichier modèle (lieu1.mod) est né des suggestions de Samuel, et mériterait d'être documenté ...


Dernière édition par P.Fradin le Jeu 9 Oct - 22:55, édité 2 fois

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Jeu 9 Oct - 22:42

Je poursuis à partir de la figure précédente. Je souhaite marquer certains angles pour que l'on puisse suivre la démonstration sur la figure.

Par exemple, comment marquer l'angle AEF avec un $x$ (mais sans ajouter un arc pour visualiser l'angle) ?

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Jeu 9 Oct - 22:54

Je ne sais pas si j'ai bien compris, mais je pense que cela rejoint le sujet que j'ai ouvert dans la rubrique Macros/Propositions concernant les arcs et les segments "labellisés". Voici la macro LabelArc:

Code:

{LabelArc(B,A,C,R,sens,"texte" <,[options]>)
options
      labelpos = inside ou outside (outside par defaut)
      labelsep = distance (cm) pour top ou bottom (0.25 par defaut)
}
[ $inside:=0, $outside:=1,
 labelpos:=outside, $labelsep:=0.25,
 SaveAttr(), $aux:=Eval(String(%7)),
 $B:=%1, $A:=%2, $C:=%3, $R:=%4, $sens:=2*(%5>0)-1,
 Rarc(B,A,C,R,sens),
 LabelAngle:=0, $u:=(B-A)/Abs(B-A)+(C-A)/Abs(C-A), u:=u/Abs(u),
 $direct:=2*(Im(bar(B-A)*(C-A))>0)-1, {sens direct ou non}
 u:=direct*sens*u,
 if labelpos=outside then
    Label(A+(R+labelsep)*u,%6)
 elif labelpos=inside then
      Label(A+(R-labelsep)*u,%6)
 fi,
 RestoreAttr()
]

Avec ça, tu peux ajouter dans ton fichier sur Simson, l'élément suivant:

Code:

[LineStyle:=noline,
LabelArc(A,E,F,0.5,1,"$x$")
]


L'arc n'est pas dessiné, mais le label est placé.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Jeu 9 Oct - 23:08

Voila le fichier avec les codages

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.5#1.5#-1.2#1.5#2.5#2.5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#10##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#A#exp(i*pi)##
15#B#exp(-i*pi/7)##
15#C#exp(1.2*i*pi/5)##
15#D#exp(3*i*pi/5)##
15#N#proj(D,Liste(A,B))##
15#M#proj(D,A,C)##
15#L#proj(D,B,C)##
% Déclaration des Macros
16#LabelArc#{LabelArc(B,A,C,R,sens,"texte" <,[options]>)
options
      labelpos = inside ou outside (outside par defaut)
      labelsep = distance (cm) pour top ou bottom (0.25 par defaut)
}
[ $inside:=0, $outside:=1,
 labelpos:=outside, $labelsep:=0.25,
 SaveAttr(), $aux:=Eval(String(%7)),
 $B:=%1, $A:=%2, $C:=%3, $R:=%4, $sens:=2*(%5>0)-1,
 Rarc(B,A,C,R,sens),
 LabelAngle:=0, $u:=(B-A)/Abs(B-A)+(C-A)/Abs(C-A), u:=u/Abs(u),
 $direct:=2*(Im(bar(B-A)*(C-A))>0)-1, {sens direct ou non}
 u:=direct*sens*u,
 if labelpos=outside then
    Label(A+(R+labelsep)*u,%6)
 elif labelpos=inside then
      Label(A+(R-labelsep)*u,%6)
 fi,
 RestoreAttr()
]##
% Déclaration des Eléments graphiques
% objet1 (Cercle)
7#objet1#[ 0,1 ]##
% LabA (Utilisateur)
18##[tMin:=-2,tMax:=2]##
14#LabA#LabelDot(A,"$A$","SO",1)#-1##
% LabB (Utilisateur)
14#LabB#LabelDot(B,"$B$","SE",1)#-1##
% LabC (Utilisateur)
14#LabC#LabelDot(C,"$C$","E",1)#-1##
% objet2 (Ligne Polyg.)
12#objet2#[ A,B,C,D,A,C ]#0#0##
% LabD (Utilisateur)
14#LabD#LabelDot(D,"$D$","NO",1)#-1##
% objet6 (Utilisateur)
14#objet6#[
Seg( D, proj(D,A,B) ),
Seg( D, proj(D,B,C) ),
Seg( D, proj(D,C,A) ),
]#-1##
% LabN (Utilisateur)
14#LabN#LabelDot(N,"$N$","S",1)#-1##
% LabM (Utilisateur)
14#LabM#LabelDot(M,"$M$","SE",1)#-1##
% LabL (Utilisateur)
14#LabL#LabelDot(L,"$L$","E",1)#-1##
% Ddroite7 (Utilisateur)
14#Ddroite7#Ddroite(B,C)#-1##
% objet8 (Droite)
6#objet8#[ L,M ]#0#0##
% objet10 (Utilisateur)
18##[tMin:=-1.5,tMax:=1.5,LabelSize:=1]##
14#objet10#[LineStyle:=noline,
LabelArc(A,M,N,0.5,1,"$x$"),
LabelArc(A,D,N,0.5,1,"$x$"),
LabelArc(C,M,L,0.5,1,"$y$"),
LabelArc(C,D,L,0.5,1,"$y$"),
LabelArc(N,D,C,0.3,1,"$z$"),
]#-1##

But du jeu, montrer que x=y en utilisant des quadrilatères cycliques.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Sam 11 Oct - 11:43

Je repars de mon code pour la droite de Simson (sans le codage des angles) et je voudrais faire tourner le point P sur le cercle circonscrit et afficher la droite de Simson correspondant à chaque position (mettons pour 100 points) afin de faire apparaitre une deltoïde.

Comment coder la boucle ?

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Sam 11 Oct - 11:59

Salut Eric,

Essaie ça dans un élément Utilisateur:

Code:

for a from 0 to 2*pi step pi/50 do
    Droite(proj(exp(i*a),C,B), proj(exp(i*a),A,C))
od 

exp(i*a) joue le rôle de P dans la boucle

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Sam 11 Oct - 16:35

Merci

Voila le nouveau code. 100 droites, c'est de trop, on ne voit plus rien, 20 suffisent amplement ...

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.5#1.5#-1.2#1.5#2.5#2.5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#9##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#A#exp(i*pi)##
15#B#exp(-i*pi/7)##
15#C#exp(1.2*i*pi/5)##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% objet1 (Cercle)
7#objet1#[ 0,1 ]##
% LabA (Utilisateur)
18##[tMin:=-2,tMax:=2]##
14#LabA#LabelDot(A,"$A$","SO",1)#-1##
% LabB (Utilisateur)
14#LabB#LabelDot(B,"$B$","SE",1)#-1##
% LabC (Utilisateur)
14#LabC#LabelDot(C,"$C$","E",1)#-1##
% objet2 (Ligne Polyg.)
18##[Width:=5,Color:=255]##
12#objet2#[ A,B,C ]#1#0##
% objet9 (Utilisateur)
18##[Width:=2,Color:=0,tMin:=-1.5,tMax:=1.5]##
14#objet9#for a from 0 to 2*pi step pi/10 do
    Droite(proj(exp(i*a),C,B), proj(exp(i*a),A,C))
od#-1##


Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Dim 12 Oct - 22:29

Je repars d'un fichier simple

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.5#1.5#-1.2#1.5#2.5#2.5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#8##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#A#exp(i*pi)##
15#B#exp(-i*pi/7)##
15#C#exp(1.2*i*pi/5)##
15#D#exp(3.4*i*pi/5)##
15#N#proj(D,Liste(A,B))##
15#M#proj(D,A,C)##
15#L#proj(D,B,C)##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% objet1 (Cercle)
7#objet1#[ 0,1 ]##
% LabA (Utilisateur)
18##[tMin:=-2,tMax:=2]##
14#LabA#LabelDot(A,"$A$","O",1)#-1##
% LabB (Utilisateur)
14#LabB#LabelDot(B,"$B$","SE",1)#-1##
% LabC (Utilisateur)
14#LabC#LabelDot(C,"$C$","E",1)#-1##
% objet2 (Ligne Polyg.)
12#objet2#[ A,B,C ]#1#0##
% LabD (Utilisateur)
14#LabD#LabelDot(D,"$P$","NO",1)#-1##
% objet6 (Utilisateur)
14#objet6#[
Seg( D, proj(D,A,B) ),
Seg( D, proj(D,B,C) ),
Seg( D, proj(D,C,A) ),
]#-1##
% LabN (Utilisateur)
14#LabN#LabelDot(N,"$N$","S",1)#-1##
% LabM (Utilisateur)
14#LabM#LabelDot(M,"$M$","SE",1)#-1##
% LabL (Utilisateur)
14#LabL#LabelDot(L,"$L$","E",1)#-1##
% Ddroite7 (Utilisateur)
14#Ddroite7#Ddroite(B,C)#-1##
% objet8 (Droite)
6#objet8#[ L,M ]#0#0##

Je voudrais faire apparaitre l'intersection M' de la droite (PM) et du cercle et tracer le segment [PM']. Comment faire ? 5ensuite, je pourrai le faire pour les autres points)

Merci d'avance.

PS : on pourrait peut-être scinder ce fil et en créer un nouveau rien que pour la droite de Simson.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Dim 12 Oct - 22:51

Bonsoir Eric,

Voici par exemple une détermination graphique de M':

Code:

[ I:=Get(Cercle(0,1)) InterL Get(Droite(D,M)),
  M':=I[1], if abs(M'-D)<0.1 then M':=I[2] fi,
  Seg(M,M')]

I contient la liste des points d'intersection, il s'agit ensuite de trier celui qui nous intéresse.

Un autre exemple avec une détermination par le calcul:

Code:

[ sol:=Solve( abs(D+x*(M-D))-1, x, -15,15),
  if abs(sol[1])<1E-10 then $x:=sol[2] else x:=sol[1] fi,
  M':=D+x*(M-D),  Seg(M,M')


_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Dim 12 Oct - 22:57

J'ai essayer en utilisant les compléments 2D et en mixant mais à l'arrivée le M' finit sur P même si Texgraph trouve les deux points ...

Variable M1 : Intersec(Droite(M,D),C1)
et un LabelDot(M1,"$M'$","S",1)

(j'ai renommé le cercle en C1)

Merci pour ton aide

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Dim 12 Oct - 23:02

Oui mais cette solution de marche pas toujours car M1 est une liste de 2 points et LabelDot n'affiche que le premier! Essaie plutôt la solution que je t'ai proposée plus haut.

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Dim 12 Oct - 23:15

C'était bien là mon problème. Voila maintenant le fichier complété avec les parallèles à la droite de Simson.

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.5#1.5#-1.3#1.5#2.5#2.5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#12##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#A#exp(i*pi)##
15#B#exp(-i*pi/7)##
15#C#exp(1.2*i*pi/5)##
15#D#exp(3.4*i*pi/5)##
15#N#proj(D,Liste(A,B))##
15#M#proj(D,A,C)##
15#L#proj(D,B,C)##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% C1 (Cercle)
7#C1#[ 0,1 ]##
% LabA (Utilisateur)
18##[tMin:=-2,tMax:=2]##
14#LabA#LabelDot(A,"$A$","O",1)#-1##
% LabB (Utilisateur)
14#LabB#LabelDot(B,"$B$","SE",1)#-1##
% LabC (Utilisateur)
14#LabC#LabelDot(C,"$C$","E",1)#-1##
% objet2 (Ligne Polyg.)
12#objet2#[ A,B,C ]#1#0##
% LabD (Utilisateur)
14#LabD#LabelDot(D,"$P$","NO",1)#-1##
% LabN (Utilisateur)
14#LabN#LabelDot(N,"$N$","SE",1)#-1##
% LabM (Utilisateur)
14#LabM#LabelDot(M,"$M$","SE",1)#-1##
% LabL (Utilisateur)
14#LabL#LabelDot(L,"$L$","E",1)#-1##
% Ddroite7 (Utilisateur)
14#Ddroite7#Ddroite(B,C)#-1##
% objet8 (Droite)
6#objet8#[ L,M ]#0#0##
% objet10 (Utilisateur)
18##[Width:=5,tMin:=-1.5,tMax:=1.5]##
14#objet10#[ I:=Get(Cercle(0,1)) InterL Get(Droite(D,M)),
  M':=I[1], if abs(M'-D)<0.1 then M':=I[2] fi,
  Seg(M,M'),
  LabelDot(M',"$M'$","S",1),
  LineStyle:=dashed,
  Seg(B,M')
]#-1##
% objet11 (Utilisateur)
14#objet11#[ I:=Get(Cercle(0,1)) InterL Get(Droite(D,L)),
  L':=I[1], if abs(L'-D)<0.1 then L':=I[2] fi,
  LabelDot(L',"$L'$","N",1),
  LineStyle:=dashed,
  Seg(A,L')
]#-1##
% objet12 (Utilisateur)
14#objet12#[ I:=Get(Cercle(0,1)) InterL Get(Droite(D,N)),
  N':=I[1], if abs(N'-D)<0.1 then N':=I[2] fi,
  Seg(N,N'),
  LabelDot(N',"$N'$","SO",1),
  LineStyle:=dashed,
  Seg(C,N')
]#-1##
% objet6 (Utilisateur)
18##[Width:=2,tMin:=-2,tMax:=2]##
14#objet6#[
Seg( D, proj(D,A,B) ),
Seg( D, proj(D,B,C) ),
Seg( D, proj(D,C,A) ),
]#-1##



Dernière édition par P.Fradin le Sam 1 Nov - 16:49, édité 1 fois (Raison : Ajout de la figure avec angles droits)

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  P.Fradin le Dim 12 Oct - 23:24

Tu es à fond dans la géométrie en ce moment Very Happy !

_________________
P.Fradin

P.Fradin
Admin

Nombre de messages : 1133
Age : 55
Date d'inscription : 19/01/2008

Voir le profil de l'utilisateur http://texgraph.tuxfamily.org/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Dim 12 Oct - 23:50

P.Fradin a écrit:Tu es à fond dans la géométrie en ce moment Very Happy !

Je ferai mieux de finir les figures pour la dernière traduction que j'ai faite (pour que ce soit prêt si un éditeur est intéressé) ... Et par ailleurs, un éditeur m'a proposé de faire une nouvelle traduction, j'attends de recevoir le bouquin.

Mais j'avais aussi une idée qui me trottait dans la tête concernant la géométrie. Je me suis lancé cette semaine, on verra bien où ça arrive d'ici un an ou deux.

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Sam 18 Oct - 23:16

Un nouvel exemple, la droite de Simson d'un quadrilatère.

Code:

% TeXgraph version 1.94 beta-7.1
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.5#1.5#-1.2#1.5#2.5#2.5##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#23##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#A1#exp(1.45*i*pi)##
15#A2#exp(-i*pi/6)##
15#A3#exp(1.2*i*pi/5)##
15#P#exp(0.95*i*pi)##
15#A4#exp(3.2*i*pi/5)##
15#P12#proj(P,A1,A2)##
15#P23#proj(P,A2,A3)##
15#P24#proj(P,A2,A4)##
15#P34#proj(P,A3,A4)##
15#P13#proj(P,A1,A3)##
15#D1#proj(P,P23,P24)##
15#D2#proj(P,P13,P34)##
15#D3#proj(P,P12,P24)##
15#D4#proj(P,P12,P23)##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% objet1 (Cercle)
7#objet1#[ 0,1 ]##
% LabA1 (Utilisateur)
18##[tMin:=-2,tMax:=2]##
14#LabA1#LabelDot(A1,"$A_{1}$","S",1)#-1##
% LabA2 (Utilisateur)
14#LabA2#LabelDot(A2,"$A_{2}$","E",1)#-1##
% LabA3 (Utilisateur)
14#LabA3#LabelDot(A3,"$A_{3}$","NE",1)#-1##
% LabP (Utilisateur)
14#LabP#LabelDot(P,"$P$","O",1)#-1##
% L4 (Droite)
6#L4#[ P12,P23 ]#0#0##
% L3 (Droite)
6#L3#[ P12,P24 ]#0#0##
% objet15 (Ligne Polyg.)
18##[Width:=5]##
12#objet15#[ A1,A2,A3,A4,A1,A3 ]#0#0##
% objet16 (Ligne Polyg.)
12#objet16#[ A2,A4 ]#0#0##
% LabA4 (Utilisateur)
18##[Width:=2,tMin:=-1.5,tMax:=1.5]##
14#LabA4#LabelDot(A4,"$A4$","N",1)#-1##
% L1 (Droite)
6#L1#[ P23,P24 ]#0#0##
% L2 (Droite)
6#L2#[ P13,P34 ]#0#0##
% LabD1 (Utilisateur)
14#LabD1#LabelDot(D1,"$D_{1}$","N",1)#-1##
% LabD2 (Utilisateur)
14#LabD2#LabelDot(D2,"$D_{2}$","O",1)#-1##
% LabD4 (Utilisateur)
14#LabD4#LabelDot(D4,"$D_{4}$","E",1)#-1##
% Simson (Droite)
18##[Width:=4,LineStyle:=1]##
6#Simson#[ D1,D2 ]#0#0##
% LabD3 (Utilisateur)
18##[Width:=2,LineStyle:=0]##
14#LabD3#LabelDot(D3,"$D_{3}$","O",1)#-1##
% objet20 (Utilisateur)
18##[LabelStyle:=1]##
14#objet20#[$x:=rectangle(Get(L2)),
 Label( Re(x[2]+0.05)+i*Im(x[2]), "$l_{2}$")
]#-1##
% objet21 (Utilisateur)
18##[LabelStyle:=9]##
14#objet21#[$x:=rectangle(Get(L1)),
 Label( Re(x[2])+i*(Im(x[2]+0.1)), "$l_{1}$")
]#-1##
% objet22 (Utilisateur)
18##[LabelStyle:=1]##
14#objet22#[$x:=rectangle(Get(L3)),
 Label( Re(x[2]+0.05)+i*Im(x[1]), "$l_{3}$")
]#-1##
% objet23 (Utilisateur)
18##[LabelStyle:=10]##
14#objet23#[$x:=rectangle(Get(L4)),
 Label( Re(x[2]-0.05)+i*Im(x[1]), "$l_{4}$")
]#-1##



Dernière édition par P.Fradin le Sam 1 Nov - 16:53, édité 1 fois (Raison : Ajout de la figure)

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  Eric Kouris le Sam 1 Nov - 14:38

Dans la même veine que l'exemple précédent, la droite de Cantor de deux points par rapport à un quadrilatère

Code:

% TeXgraph version 1.94 beta-7.2
% Fenetre Xmin Xmax Ymin Ymax Xscale Yscale
100#-1.5#1.5#-1.2#1.5#4#4##
% Marges gauche droite haut bas cadre gestion_couleur comptgraph
101#0#0#0#0#0#1#27##
% Affectation des Variables theta et phi et type de perspective
18##[theta:=0.5236, phi:=1.0472,OriginalCoord(1),IdMatrix(),IdMatrix3D(),ModelView(ortho)]##
% Déclaration des Variables Globales
15#A1#exp(1.45*i*pi)##
15#A2#exp(-i*pi/6)##
15#A3#exp(1.2*i*pi/5)##
15#P#exp(0.9*i*pi)##
15#A4#exp(3.2*i*pi/5)##
15#P12#proj(P,A1,A2)##
15#P23#proj(P,A2,A3)##
15#P24#proj(P,A2,A4)##
15#P34#proj(P,A3,A4)##
15#P13#proj(P,A1,A3)##
15#Q#exp(1.95*i*pi)##
15#Q12#proj(Q,A1,A2)##
15#Q13#proj(Q,A1,A3)##
15#Q23#proj(Q,A2,A3)##
15#Q24#proj(Q,A2,A4)##
15#Q34#proj(Q,A3,A4)##
15#D1#[P23,P24] Inter [Q23,Q24]##
15#D2#[P13,P34] Inter [Q13,Q34]##
15#D3#[P12,P24] Inter [Q12,Q24]##
15#D4#[P12,P23] Inter [Q12,Q23]##
% Déclaration des Macros
% Déclaration des Eléments graphiques
% Quadri (Ligne Polyg.)
18##[Width:=5]##
12#Quadri#[ A1,A2,A3,A4 ]#1#0##
% Cercle (Cercle)
18##[Width:=2]##
7#Cercle#[ 0,1 ]##
% LabA1 (Utilisateur)
18##[tMin:=-2,tMax:=2]##
14#LabA1#LabelDot(A1,"$A_{1}$","S",1)#-1##
% LabA2 (Utilisateur)
14#LabA2#LabelDot(A2,"$A_{2}$","SE",1)#-1##
% LabA3 (Utilisateur)
14#LabA3#LabelDot(A3,"$A_{3}$","N",1)#-1##
% LabP (Utilisateur)
14#LabP#LabelDot(P,"$P_{1}$","O",1)#-1##
% Cantor (Droite)
18##[Width:=4,LineStyle:=1]##
6#Cantor#[ D1,D2 ]#0#0##
% L4 (Droite)
18##[Width:=2,LineStyle:=0]##
6#L4#[ P12,P23 ]#0#0##
% L3 (Droite)
6#L3#[ P12,P24 ]#0#0##
% LabA4 (Utilisateur)
18##[tMin:=-1.5,tMax:=1.5]##
14#LabA4#LabelDot(A4,"$A4$","NO",1)#-1##
% L1 (Droite)
6#L1#[ P23,P24 ]#0#0##
% L2 (Droite)
6#L2#[ P13,P34 ]#0#0##
% M1 (Droite)
6#M1#[ Q23,Q24 ]#0#0##
% M2 (Droite)
6#M2#[ Q13,Q34 ]#0#0##
% M3 (Droite)
6#M3#[ Q12,Q24 ]#0#0##
% M4 (Droite)
6#M4#[ Q12,Q23 ]#0#0##
% LabD1 (Utilisateur)
14#LabD1#LabelDot(D1,"$D_{1}$","SE",1)#-1##
% LabD2 (Utilisateur)
14#LabD2#LabelDot(D2,"$D_{2}$","N",1)#-1##
% LabD4 (Utilisateur)
14#LabD4#LabelDot(D4,"$D_{4}$","E",1)#-1##
% LabD3 (Utilisateur)
14#LabD3#LabelDot(D3,"$D_{3}$","NO",1)#-1##
% Labl2 (Utilisateur)
18##[LabelStyle:=1]##
14#Labl2#[
 $x:=rectangle(Get(L2)),
 Label( Re(x[2]+0.05)+i*Im(x[2]), "$l_{2}$"),
 $y:=rectangle(Get(M2)),
 Label( Re(y[1])+0.1+i*Im(y[2]), "$m_{2}$"),
]#-1##
% Labl1 (Utilisateur)
18##[LabelStyle:=9]##
14#Labl1#[
 $x:=rectangle(Get(L1)),
 Label( Re(x[2])+i*(Im(x[2]+0.1)), "$l_{1}$"),
 $y:=rectangle(Get(M1)),
 Label( Re(y[1]+0.1)+i*(Im(y[2])), "$m_{1}$"),
]#-1##
% Labl3 (Utilisateur)
18##[LabelStyle:=1]##
14#Labl3#[
 $x:=rectangle(Get(L3)),
 Label( Re(x[2])-0.05+i*Im(x[1]), "$l_{3}$"),
 $y:=rectangle(Get(M3)),
 Label( Re(y[1])+i*Im(y[1])+0.1*i, "$m_{3}$"),
]#-1##
% Labl4 (Utilisateur)
18##[LabelStyle:=10]##
14#Labl4#[
 $x:=rectangle(Get(L4)),
 Label( Re(x[2]-0.05)+i*Im(x[1]), "$l_{4}$"),
 $y:=rectangle(Get(M4)),
 Label( Re(y[2])+i*Im(y[2])-0.1*i, "$m_{4}$"),
]#-1##
% LabQ (Utilisateur)
18##[LabelStyle:=0]##
14#LabQ#LabelDot(Q,"$P_{2}$","E",1)#-1##

Soit $A_{1}A_{2}A_{3}A_{4}$ un quadrilatère inscrit dans un cercle et $P_{1}$ et $P_{2}$ deux points de ce cercle. Les quatre intersections des quatre paires de droites de Simson de $P_{1}$ et~$P_{2}$ par rapport aux triangles $A_{2}A_{3}A_{4}$, $A_{1}A_{3}A_{4}$, $A_{1}A_{2}A_{4}$ et $A_{1}A_{2}A_{3}$ sont alignées. Cette droite est la droite de Cantor des points $P_{1}$ et $P_{2}$ par rapport au quadrilatère $A_{1}A_{2}A_{3}A_{4}$.



Dernière édition par P.Fradin le Sam 1 Nov - 16:54, édité 1 fois (Raison : Ajout de la figure)

Eric Kouris

Nombre de messages : 150
Age : 49
Date d'inscription : 26/03/2008

Voir le profil de l'utilisateur http://pagesperso-orange.fr/styren/

Revenir en haut Aller en bas

Re: Triangles

Message  Contenu sponsorisé Aujourd'hui à 5:57


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 2 1, 2  Suivant

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum