Page 1 sur 1

Pavages hyperboliques

Posté : lun. 5 juil. 2010, 21:27
par GM
Je lance un sujet sur le thème des "pavages hyperboliques" que je complèterai ensuite.

A l'origine de ce message, un mail de Patrick Fradin (le créateur de l'excellent TeXGraph) sur la liste Syracuse pour attirer notre attention sur ce site :

http://images.math.cnrs.fr/Ringworld.html

et ce que cela lui a inspiré :

http://melusine.eu.org/syracuse/texgraph/exemples/hpavages/

Pour arriver à ce magnifique résultat, la technique n'est pas simple... si vous avez tenté de comprendre le premier lien

et donc Patrick nous a écrit un magnifique document explicatif :

http://dl.dropbox.com/u/7335679/pavages ... liques.pdf

... dont je n'ai encore lu que le tout début et m'a donné envie de réaliser une première figure, en lien avec son document, pour illustrer ce qu'est une droite hyperbolique.

Figure asymptote 35ff61f8883c17c2a39813e93e42863b
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. size(300);
  2. import geometry;
  3.  
  4. point pO=(0,0);
  5. real k=2;
  6. inversion inv=inversion(k,pO);
  7.  
  8. point pA=(1,0), pB=(.5,-.5),
  9. iA=inv*pA, iB=inv*pB;
  10.  
  11. circle c1=circle(inv),
  12. c2=circle(pA,pB,iA);
  13.  
  14. draw(c1,linewidth(bp)+blue);
  15. draw(c2,linewidth(bp)+red);
  16.  
  17. point[] uv=intersectionpoints(c1,c2);
  18. point u=uv[0], v=uv[1];
  19.  
  20. line Ou=line(pO,false, u),
  21. Ov=line(pO,false, v);
  22.  
  23. draw(pO--iA,1bp+dotted);
  24. draw(pO--iB,1bp+dotted);
  25.  
  26. draw(Ou^^Ov,dashed);
  27.  
  28. dot("$\Omega$",pO,SW);
  29. dot("$A$",pA,S,blue);
  30. dot("$A'$",iA,S,red);
  31. dot("$B$",pB,E,blue);
  32. dot("$B'$",iB,E,red);
  33. dot("$u$",u,SE,.5green);
  34. dot("$v$",v,NE,.5green);
  35.  
  36. draw("$\sqrt{|k|}$",pO--pO+sqrt(abs(k))*dir(90),blue,Arrow());
  37.  
  38. label("Cercle d'inversion de l'inversion de centre $\Omega$ et de rapport $k$",truepoint(N),N,blue);


Rappelons à propos de l'inversion :
Si \mathcal{E} désigne un espace affine euclidien, \Omega un point de \mathcal{E} et k un réel non nul, alors, pour tout point A de \mathcal{E} distinct de \Omega, il existe un unique point A' de \mathcal{E}, tel que :
  • \Omega, A et A' sont alignés ;
  • \overline{\Omega A}\times\overline{\Omega A'}=k
On appelle inversion de centre \Omega et de rapport k, l'application de \mathcal{E}\backslash\{\Omega\} dans lui-même qui à A associe A' sous les conditions précédentes.

et aussi que :
  • Le cercle d'inversion est le cercle de centre \Omega et de rapport \sqrt{|k|} est globalement invariant (invariant point par point lorsque k>0).
  • Deux points et leurs images sont cocycliques, sur un cercle orthogonal au cercle d'inversion.




Le plus dur reste à faire. :mrgreen:

Re: Pavages hyperboliques

Posté : lun. 5 juil. 2010, 22:57
par GM
Un cas particulier de l'exemple précédent :

Figure asymptote 145dd8078547e6341ae9dd0079070fad
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. size(300);
  2. import geometry;
  3. show(defaultcoordsys);
  4.  
  5. point pO=(0,0);
  6. real k=1;
  7. inversion inv=inversion(k,pO);
  8.  
  9. point pA=(.5,.1), pB=(.4,-.3),
  10. iA=inv*pA, iB=inv*pB;
  11.  
  12. circle c1=circle(inv),
  13. c2=circle(pA,pB,iA);
  14.  
  15. draw(c1,linewidth(bp)+blue);
  16.  
  17.  
  18. point[] uv=intersectionpoints(c1,c2);
  19. point u=uv[0], v=uv[1];
  20.  
  21. draw((path)arc(c2, v, u),2bp+red);
  22. draw((path)arc(c2, u, v),dashed+red);
  23.  
  24. line Ou=line(pO,false, u),
  25. Ov=line(pO,false, v);
  26.  
  27. draw(pO--iA,1bp+dotted);
  28. draw(pO--iB,1bp+dotted);
  29.  
  30. draw(Ou^^Ov,dashed);
  31.  
  32. dot("$a$",pA,S,blue);
  33. dot("$\frac1{\overline{a}}$",iA,N,red);
  34. dot("$b$",pB,E,blue);
  35. dot("$\frac1{\overline{b}}$",iB,S,red);
  36. dot("$u$",u,E,.5green);
  37. dot("$v$",v,N,.5green);
  38.  
  39. line tgu=tangent(c1,u), tgv=tangent(c1,v);
  40. draw(tgu^^tgv,.5green+dashed);
  41. dot("$c$",intersectionpoint(tgu,tgv),S);
  42.  
  43. label(scale(.8)*"Cercle d'inversion de l'inversion de centre $O$ et de rapport $k=1$",truepoint(N),N,blue);
  44. label("Inversion d'\'ecriture complexe $z'=\displaystyle\frac{1}{\overline{z}}$",truepoint(S),S);

Re: Pavages hyperboliques

Posté : mar. 6 juil. 2010, 00:34
par GM
J'ai poursuivi un peu la lecture du document de Patrick (qui explique les notions utiles à la pratique du pavage hyperbolique),

et après avoir parlé de droites hyperboliques, il effectue un rappel sur la notion d'isométrie hyperbolique et en particulier, sur la notion de rotation hyperbolique.

Un exemple avec Asymptote :

Figure asymptote 3b461109d0c34c11204a7263eb0c5908
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. size(300);
  2. import geometry;
  3. show(defaultcoordsys);
  4.  
  5. point pO=(0,0);
  6. real k=1, theta=120;
  7. inversion inv=inversion(k,pO);
  8.  
  9.  
  10. point pA=(.4,-.2), pB=(.7,.3), iA=inv*pA;
  11.  
  12. // T : z'=(z+a)/(1+conj(a)z)
  13. pair T(pair z) {return (z+pA)/(1+conj(pA)*z);}
  14. // T^{-1} : z=(z'-a)/(1-z'conj(a))
  15. pair rT(pair z) {return (z-pA)/(1-conj(pA)*z);}
  16.  
  17. // La rotation hyperbolique R(A,theta) est la composée de :
  18. // T^{-1}
  19. // suivie de rotation hyperbolique (et euclidienne !) R(0,theta)
  20. // suivie de T
  21. point pBp=T(rotate(theta)*rT(pB));
  22.  
  23. circle c1=circle(inv),
  24. c2=circle(pA,pB,iA),
  25. c3=circle(pA,pBp,iA);
  26.  
  27. draw(c1,linewidth(bp)+blue);
  28. clipdraw(c2, 0.8*red+dashed);
  29. clipdraw(c3, 0.8*red+dashed);
  30.  
  31. arc arc1=arc(c2,pB,pA), arc2=arc(c3,pA,pBp);
  32. draw(arc1,2bp+red);
  33. draw(arc2,2bp+red);
  34.  
  35. dot("$A(a)$",pA,SE,red);
  36. dot("$B(b)$",pB,E,blue);
  37. dot("$B'(b')$",pBp,S,blue);
  38.  
  39.  
  40. point pM=pA-.5dir(arc1,reltime(arc1,1)),
  41. pN=pA+.5dir(arc2,0);
  42. draw(pA--pM,red);
  43. draw(pA--pN,red);
  44. markangle("$\theta$",pM,pA,pN,grey);
  45.  
  46. label(scale(.8)*"Rotation hyperbolique de centre $A(a)$, d'angle $\theta$",truepoint(S),S);



La même figure mais avec une variante de code (qui exploite des matrices, comme évoquées dans le rappel qui suit) :

Figure asymptote 0635f845db2b3e1a085a81885fcf6804
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. size(250);
  2. import geometry;
  3. show(defaultcoordsys);
  4.  
  5. point pO=(0,0);
  6. real k=1, theta=120;
  7. inversion inv=inversion(k,pO);
  8.  
  9. pair pA=(.4,-.2), pB=(.7,.3), iA=inv*pA;
  10. real theta=120;
  11.  
  12. pair[][] mat1={{1,-pA},{-conj(pA),1}},
  13. mat2={{rotate(theta/2)*I,0},{0,rotate(-theta/2)*I}},
  14. mat3={{1,pA},{conj(pA),1}},
  15. mat=mat3*mat2*mat1;
  16.  
  17. pair f(pair z) {return (mat[0][0]*z+mat[0][1])/(mat[1][0]*z+mat[1][1]);}
  18.  
  19. circle c1=circle(inv),
  20. c2=circle(pA,pB,iA),
  21. c3=circle(pA,f(pB),iA);
  22.  
  23. draw(c1,linewidth(bp)+blue);
  24. clipdraw(c2, 0.8*red+dashed);
  25. clipdraw(c3, 0.8*red+dashed);
  26.  
  27. arc arc1=arc(c2,pB,pA), arc2=arc(c3,pA,f(pB));
  28. draw(arc1,2bp+red);
  29. draw(arc2,2bp+red);
  30.  
  31. dot("$A(a)$",pA,SE,red);
  32. dot("$B(b)$",pB,E,blue);
  33. dot("$B'(b')$",f(pB),S,blue);
  34.  
  35.  
  36. point pM=pA-.5dir(arc1,reltime(arc1,1)),
  37. pN=pA+.5dir(arc2,0);
  38. draw(pA--pM,red);
  39. draw(pA--pN,red);
  40. markangle("$\theta$",pM,pA,pN,grey);
  41.  
  42. label(scale(.8)*"Rotation hyperbolique de centre $A(a)$, d'angle $\theta$",truepoint(S),S);


2010-07-06_021040.png
2010-07-06_021040.png (17.03 Kio) Vu 10312 fois


On se rapproche... toujours un peu plus... des premiers pavages hyperboliques. :)

Re: Pavages hyperboliques

Posté : mar. 6 juil. 2010, 09:54
par OG
Bonjour

As-tu regardé le paquet de géométrie hyperbolique de R. Bourquin ?
http://raoul.koalatux.ch/sites/hyperbol ... metry.html

Voir les exemples sur sa page.

O.G.

Re: Pavages hyperboliques

Posté : mar. 6 juil. 2010, 11:33
par GM
OG a écrit :As-tu regardé le paquet de géométrie hyperbolique de R. Bourquin ?
http://raoul.koalatux.ch/sites/hyperbol ... metry.html

ahh, bein non... je ne savais pas que cela existait. :lol: