Obsolete (plus d'applets Java)

Exemples JavaSketchpad - Proportions

Conjugué harmonique

Désolé, votre navigateur n'est pas compatible Java. Construction géométrique :
Choix d'une droite quelconque passant par A et d'un point quelconque M, ici effectué par rotation de B.

{ab} Line (A,B);
{M} Rotation (B,A,1)[hidden];
{am} Line (A,M)[hidden];
{bn} Parallel (am,B)[hidden];
{mn} Line (M,C)[hidden];
{N} Intersect(mn, bn)[hidden];
{N!} Dilation (N,B,-1)[hidden];
{mn!} Line (M,N!)[hidden];
{D} Intersect (mn!,ab);

Par calcul : CD/CB = 2(CA/CB) / ( 1 + CA/CB)
Désolé, votre navigateur n'est pas compatible Java.

{ab} Line (A,B);
{r} Ratio/Points (C,B,A,0,0,' ')[hidden];
{s} Calculate (0,0,' ','A1+@sgn_@abs_1-@sqrtA+2*A1+/')(r)[hidden];
{D} Dilation/MarkedRatio (B,C,s);
Le calcul fait intervenir un test "1 + CA/CB = 0" qui renvoie undefined si C est au milieu de AB, au lieu d'une valeur astronomique qui mettrait un point D aléatoire dans le plan.
A1+@sgn_@abs_1-@sqrtA+ renvoie A ou undefined

Barycentres

Désolé, votre navigateur n'est pas compatible Java. L'associativité des barycentres permet de construire de proche en proche celui-ci.
On construit ainsi directement le centre de gravité du triangle ABC, sans construire ses médianes.

{M} Dilation (A,B, 0.5)[hidden];
{G} Dilation (C,M, 0.3333333333333333);
Si les poids sont inégaux, il suffit de remplacer les valeurs.

On peut ainsi construire directement les points remarquables d'un triangle par calcul, en coordonnées barycentriques.

4ème proportionnelle x/a = b/c

Désolé, votre navigateur n'est pas compatible Java. On n'utilise pas la construction géométrique usuelle mais directement :

{X} Dilation/3PtRatio (A,O,O,C,B);
C'est la définition même de la fonction !
La construction géométrique n'est intéressante que si OB est déja sur une droite différente de OA,OC.

Moyenne géométrique x² = ab

Diverses constructions, selon la liberté des points OA = a et OB = b Désolé, votre navigateur n'est pas compatible Java.

{A!} Dilation (A,O, -1)[hidden];
{M} Dilation (A!,B, 0.5)[hidden];
{K} Circle (M,A!)[hidden];
{Oy} Perpendicular (Ou,O)[hidden];
{X} Intersect1 (Oy,K);

Une autre méthode :
Désolé, votre navigateur n'est pas compatible Java. Un cercle passant par A et B, centré en C quelconque sur la médiatrice de AB
OX est la tangente au cercle, intersection du cercle avec le cercle de diamètre OC.

{M} Dilation (A,B, 0.5)[hidden];
{My} Perpendicular (Ou,M)[hidden];
{C} Point on object (My,0)[hidden];
{K1} Circle (C,A)[hidden];
{N} Dilation (O,C,0.5)[hidden];
{K2} Circle (N,O)[hidden];
{X} Intersect2 (K1,K2);
{OX} Segment (O,X);

La construction suivante est par contre à éviter car elle impose b > a :
Désolé, votre navigateur n'est pas compatible Java.

{M} Dilation (O,B, 0.5)[hidden];
{K} Circle (M,O)[hidden];
{Ay} Perpendicular (Ay,O)[hidden];
{X} Intersect1 (Ay,K);
{OX} Segment (O,X);

Ou encore encore de le construire par calcul direct x = OA OB/OA :

{a} Distance (O,A,0,0,' ')[hidden];
{b} Distance (O,B,0,0,' ')[hidden];
{r} Calculate(0,0,' ','BA@sgn_@abs_!1+A+/@sqrt')(a,b)[hidden];
{X} Dilation/MarkedRatio (A,O,r);

Ce calcul renvoie r = OB/1  au lieu de ∞ si a = 0. Par le A@sgn_@abs_!1+A+ qui vaut 1 si a = 0, et a sinon.
Le Dilation suivant de OA = 0 dans ce rapport r quelconque donne alors bien 0 car OA = 0.
Le @abs_ n'est pas vraiment nécessaire ici car a ≥ 0 comme Distance.

Homothéties

Désolé, votre navigateur n'est pas compatible Java. Les fonctions "Dilation( )" sont précisément prévues pour ça !
Homothétie de rapport k et de centre O donnés :
{P*} Dilation (P,O,k); sans commentaire

Homothétie de centre O transformant A en A* :

{AB*} Dilation/3PtRatio (AB,O,O,A,A*);
{AC*} Dilation/3PtRatio (AC,O,O,A,A*);
{BC*} Dilation/3PtRatio (BC,O,O,A,A*);
{ABC*} Dilation/3PtRatio (ABC,O,O,A,A*);
Le triangle ABC est transformé en A*B*C*, seuls les côtés sont ici transformés, directement sans passer par les sommets B*, C* (A* donné).
La même opération peut être appliquée à n'importe quel élément : point, segment, droite, cercle, polygone, ici ABC → ABC*.
Le rapport peut être < 0 (si A* de l'autre côté de O), mais alors un Dilation d'un cercle de rapport <0 ne marche pas, les autres types d'éléments sont OK.
Le seul cas où cette construction est mise en défaut est si O = A = A* ! (car le rapport est indéfini)

Similitudes

Si on connaît le centre de la similitude, l'angle et le rapport, la similitude est la composition d'une rotation et d'une homothétie.

Désolé, votre navigateur n'est pas compatible Java. Similitude transformant AB en A*B* :
En composant avec une translation AB → A1B1, A1 = A*, de vecteur AA*, la construction est simplifiée : la similitude A1B1 → A*B* est de centre A1 = A*
La similitude AB → A*B* est alors la composition de la translation AA*, de la rotation et de l'homothétie de centre A*.

{ definit l'angle et le rapport }
{B1} VectorTranslation (B,A,A*)[hidden];
{B2} Rotation/MarkedAngle (B1,A*,B1,A*,B*)[hidden];

{ transforme les éléments de la figure }
{C1} VectorTranslation (C,A,A*)[hidden];
{C2} Rotation/MarkedAngle (C1,A*,B1,A*,B*)[hidden];
{C*} Dilation/3PtRatio (C2,A*,A*,B2,B*);

{ABC1} VectorTranslation (ABC,A,A*)[hidden];
{ABC2} Rotation/MarkedAngle (ABC1,A*,B1,A*,B*)[hidden];
{ABC*} Dilation/3PtRatio (ABC2,A*,A*,B2,B*);

Si de nombreux points sont à transformer, il peut être avantageux de déterminer d'abord le centre de la similitude, on évite ainsi la translation :

Centre de similitude

Le problème dans cette construction est qu'elle n'est valable que si la similitude est une vraie similitude, et pas une simple homothétie, voire une translation !
La construction précédente est plus simple, et valable dans tous les cas.

Les droites homologues AB et A*B* se coupent en P (sinon homothétie ou translation)
Les cercles circonscrits à AA*P et BB*P se recoupent en I centre de la similitude.
Le ratio est A*B*/AB, l'angle est AIA*

Désolé, votre navigateur n'est pas compatible Java.

{ construit I }
{ab} Line (A,B)[hidden];
{ab*} Line (A*,B*)[hidden];
{P} Intersect (ab,ab*)[hidden];

{ cercle AA*P }
{map} Dilation (A,P, 0.5)[hidden];
{medap} Perpendicular (ab,map)[hidden];
{map*} Dilation (A*,P, 0.5)[hidden];
{medap*} Perpendicular (ab*,map*)[hidden];
{Oa} Intersect (medap,medap*)[hidden];

{ cercle BB*P }
{mbp} Dilation (B,P, 0.5)[hidden];
{medbp} Perpendicular (ab,mbp)[hidden];
{mbp*} Dilation (B*,P, 0.5)[hidden];
{medbp*} Perpendicular (ab*,mbp*)[hidden];
{Ob} Intersect (medbp,medbp*)[hidden];

{ seconde intersection des cercles pas tracés }
{oo} Line (Oa,Ob)[hidden];
{I} Reflection (P,oo);

{ applique la similitude }
{ABC1} Rotation/MarkedAngle (ABC,I,A,I,A*)[hidden];
{ABC*} Dilation/SegmentRatio (ABC1,I,A*B*,AB);
...
Les cercles n'ont pas besoin d'être effectivement construits pour construire la seconde intersection I :
réflexion de P par rapport à la ligne des centres OaOb.

Similitude indirecte

Désolé, votre navigateur n'est pas compatible Java. Composition d'une reflection et d'une similitude directe.
On applique alors cette définition.
Dans la construction précédente, on ajoute ainsi une réflection par rapport à la droite A*B* :

{C1} VectorTranslation (C,A,A*)[hidden];
{C2} Rotation/MarkedAngle (C1,A*,B1,A*,B*)[hidden];
{C3} Dilation/3PtRatio (C2,A*,A*,B2,B*)[hidden];
{C*} Reflection (C3,A*B*);

{ABC1} VectorTranslation (ABC,A,A*)[hidden];
{ABC2} Rotation/MarkedAngle (ABC1,A*,B1,A*,B*)[hidden];
{ABC3} Dilation/3PtRatio (ABC2,A*,A*,B2,B*)[hidden];
{ABC*} Reflection (ABC3,A*B*);
...

Déplacements et antidéplacements

Le rapport de la similitude est 1, et les constructions précédentes sont simplifiées en supprimant l'opération Dilation( ).
Selon les données du problème, on peut aussi appliquer directement la composition de translations, rotations et/ou symétries par rapport à des droites (reflexions) données.
Rappelons qu'un déplacement est une rotation pure ou une translation pure, et que ceci peut toujours être ramené à deux reflexions.
Construire à tout coup deux telles reflexions n'est pas une mince affaire (cas particuliers, tests...) et on ne gagne pas grand chose à appliquer deux reflexions plutôt qu'une translation et une rotation.
La construction suivante fonctionne toujours, même quand A = A'. La médiatrice de AA' est alors remplacée par une droite quelconque (ici horizontale) passant par A. C'est justement là que la construction devient compliquée, la construction de la "médiatrice" étant artificielle (voir constructions conditionnelles).

Désolé, votre navigateur n'est pas compatible Java.

{ mediatrice de AA' si A!=A', droite quelconque si A=A' }
{I} Dilation (A,A!, 0.5)[hidden];
{I1} Rotation (A,I, 1.57079632679489662)[hidden];
{d} Distance (A,A!,0,0,' ')[hidden];
{dd} Calculate (0,0,' ','1A@sgn_@abs_-100*')(d)[hidden];
{I2} Translation/FixedAngle/MarkedDistance (rI1,dd, 0)[hidden];
{med} Line (I,rI2);

{ deuxième axe  = bisectrice de B1A'B' }
{B1} Reflection (B,med)[hidden];
{Ib} Dilation (B!,B1, 0.5)[hidden];
{bis} Line (A!,Ib);

{ point courant M }
{M1} Reflection (M,med)[hiddenw];
{M!} Reflection (M1,bis);
La construction conditionnelle est obtenue par calcul, qui fournit dd = 0 si A≠A' et dd = 100 si A=A'
Le point I1 qui fait partie de la médiatrice ou qui est confondu avec A si A=A'=I est alors décalé de dd pour obtenir deux points toujours distincts de cette "médiatrice" : I et I2.
La direction de la droite arbitraire si A=A' est définie dans le Translation/FixedAngle/MarkedDistance, ici 0 = droite horizontale.
L'applet affiche le texte "A=A'" lorsque c'est le cas, par une autre construction conditionnelle.

Lorsque les deux axes se coupent en O, c'est une rotation de centre O, sinon une translation (voire l'identité).

Affinités - transvections

Définissons ces transformations par deux points A→A' et la droite de points fixes (d)
Le problème étant de construire l'image M' de M.

Désolé, votre navigateur n'est pas compatible Java. La construction "classique" détermine l'intersection de (d) avec AM : point fixe I de la droite AM, donc sur la droite A'M'
M' est ainsi l'intersection de A'I avec la parallèle à AA' en M (direction de l'affinité).
Cette construction a l'énorme inconvénient de ne pas fonctionner si M est sur la droite AA' ou sur la parallèle à (d) en A.
On préfèrera la construction suivante qui fonctionne à tout coup :

{aa} Line (A,A!)[hidden];
{H} Intersect (aa,d)[hidden];
{mm} Parallel (aa,M)[hidden];
{K} Intersect (mm,d)[hidden];
{M!} Dilation/3PtRatio (M,K,H,A,A!);

Si AA' est parallèle à (d), bien sûr il ne s'agit pas d'une affinité mais d'une transvection :

Désolé, votre navigateur n'est pas compatible Java. Là aussi, on évitera la construction "classique" comme intersection de la parallèle à (d) en M et de la droite A'I, I étant l'intersection de (d) et AM.
Cette construction échoue si M est sur la droite AA' : On préfèrera la méthode suivante :

{ah} Perpendicular (dd,A)[hidden];
{H} Intersect (ah,dd)[hidden];

{mm} Parallel (dd,M)[hidden];
{K} Intersect (ah,mm)[hidden];
{M1} VectorTranslation (A!,A,M)[hidden];
{M!} Dilation/3PtRatio (M1,M,H,A,K)[label('M'''),red];

 

Accueil Arithmétiques Géométrique Divers Thèmes Scripts Jeux Exercices Sujet précédent Sujet suivant   Parent