Pavage hyperbolique du demi plan de Poincaré

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

Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Mar 16 Juin - 17:08

Bonjour,

Je cherche à dessiner le pavage hyperbolique du demi-plan hyperbolique de Poincaré par un polygone de dirichlet, ici un triangle hyperbolique.

P. Fradin m'a donné les bases du dessin, que j'ai modifié pour qu'on voit le pavage plus "développé".

Le dessin avec le triangle de base :
Code:

[view(-1.4,1.4,-0.5,2), Marges(0,0,0,0), size(10),
 axeX([0,1], 0.5, 1, bottom, 1, "", 2,0),
 LineStyle:=dotted, arc(0,-1,-2,1,1), arc(1,0,-1,1,1), arc(0,1,2,1,-1),
 LineStyle:=solid, Width:=5, a:=exp(2*i*pi/3), b:=exp(i*pi/3),
 Path([i*Ymax+0.5, b, line, 0, a, 1, 1, arc, i*Ymax-0.5, line],0),
 Label( i*(0.5+Ymax/2), "$T$") ]

Le dessin de Patrick modifié : (enfin plus poussé)
Code:

[view(-1.4,1.4,-0.5,2), Marges(0,0,0,0), size(20),
 axeX([0,1], 0.5, 1, bottom, 1, "", 2,0),
 LineStyle:=solid,Width:=1,
 for a in [-2,-1,0,1,2] do
    SaveWin(), SetMatrix([a,1,i]),
    arc(0,-1,-2,1,1),arc(0,1,2,1,-1),
    arc(0,-1/2,-1,1/2,1),arc(0,1/2,1,1/2,-1),
    arc(-1/3,-1/2,-2/3,1/6,1),
    arc(-1/3,-4/9,-5/9,1/9,1),arc(1/3,4/9,5/9,1/9,-1),
    arc(0,-1/3,-2/3,1/3,1),arc(0,1/3,2/3,1/3,-1),
    arc(0,-29/144,-29/72,29/144,1),arc(0,29/144,29/72,29/144,-1),
    arc(-1/3,-173/432,-101/216,29/432,1),
    arc(1/3,173/432,101/216,29/432,-1),
    arc(0,-1/4,-1/2,1/4,1),arc(0,1/4,1/2,1/4,-1),
    arc(-1/3,-5/12,-1/2,1/12,1),arc(1/3,5/12,1/2,1/12,-1),

    RestoreWin(),
 od,
for z in [-1/2,1/2] step 0.5 do Ddroite(z,z+i) od,
 LineStyle:=solid, Width:=5, a:=exp(2*i*pi/3), b:=exp(i*pi/3),
 FillStyle:=full, FillColor:=lightgray,
 Path([i*Ymax+0.5, b, line, 0, a, 1, 1, arc, i*Ymax-0.5, line],0),
 Width:=5,
 LabelDot(i,"$i$","SE",0),
 LabelStyle:=left+bottom, LabelDot(b,"$\,e^{i\pi/3}$","[0.25,i]",0),LineStyle:=dotted,
for z in [0,0]step 0.5 do Ddroite(z,z+i) od,
 ]

Bon alors c'est pas un code propre, j'ai mis les traits les plus fin possible pour bien voir en zoomant ce qui se passe...


Le problème :
Il s'agit de faire les reflexions par rapport aux côtés de T, et on obtient ainsi le pavage.
Je sais comment on fait la réflexion, mais à la main c'est assez ennuyeux et long, et après il faut pas mal de temps pour trouver l'arc de cercle qui fait ce que j'ai trouver à la main...

Je voudrais savoir si c'est possible d'établir une macro qui ferait la réflexion, et ensuite faire en sorte de donne un certain rang en paramètre, et le résultat nous donnerait le pavage au rang souhaité. Par exemple le premier bout de code serait pour un rang 0 (aucune reflexion, juste le motif de base) et le code précédent serait un rang de ....4 ? (4 réflections par rapport à chacun des côtés, donc 12 réflexions puisque 3 par côtés...)


Voici le processus de réflexion :
Le côté par rapport auquel on fait la reflexion est commun au triangle actuel, et celui obtenu après relfexion, il n'y a donc qu'un seul point a "refléter".
On commence par tracer la droite qui passe par ce point, et le centre de l'arc du côté par rapport auquel on reflète.
c'est-à-dire que le côté par rapport auquel on reflète est contenu dans un arc, et on se sert du centre de cet arc (tous les arcs sont des demi-cercles).

Soit a le centre du demi cercle, et x le point a refléter.
Il faut ensuite considérer y le centre du segment [a,x]; tracer le cercle de centre y, et de rayon [y,x].
Ce cercle intercepte le demi cercle dont a est le centre en 2 point (il est possible d'avoir a prolonger le demi cercle pour obtenir les point d'intersection) que l'on appelle u et v.
La reflexion de x est alors le point d'intersection entre [u,v] et [a,x].

Par exemple sur le 2ème code que j'ai mis,
la reflexion de e^{2iPi/3} par rapport au côté "arc de centre 1 de rayon 1" est le l'intersection des demi-cercle "arc de centre 1/3 et de rayon 1/3" et "arc de centre 2/3 et de rayon 1/3".

En appliquant le procédé ci-dessus, on trouve ce point.

Une fois le point reflété, il faut tracer les bons demi cercle pour joindre les points qui doivent former le nouveau triangle, le triangle reflété.

T est un triangle avec un point à l'inifini, et deux angles de pi/3, tous les triangles reflétés seront pareil.
Sur mon dessins j'ai aussi mis les arcs de cercles qui sont réflexions successives de l'ordonnée, car on peut aussi considérer comme motif de base le "demi-triangle T" avec un angle à l'infini, un angle de pi/3 et un angle de pi/2.


j'espère que toutes les explications sont claires. Je pense qu'une telle macro est réalisable, et qu'on peut ensuite programmer le tout pour "pousser" le phénomène assez loin ou non suivant les besoins. Sur mon dessin, c'est n'est pas encore suffisant, il y a encore des espaces où on se demande comment cela va être pavé.

Si cela s'avère trop fastidieux ou trop compliqué (ou trop de temps) à élaborer, tant pi, une explication du processus fera l'affaire, mais quand même un dessin vaut parfois mieux ....

Merci d'avance pour les courageux qui se frotteront au problème.

Sébastien

edit : je viens de trouver l'image à un rang beaucoup plus poussé :


homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  P.Fradin le Mer 17 Juin - 0:39

Bonsoir Sébastien,

Oui c'est possible, j'ai repris un fichier que j'avais sur la géométrie hyperbolique pour ajouter ce que tu demandes, le code:

Code:

[view(-2,2,-0.5,2), Marges(0,0,0,0), size(15),
 background(full,beige),
 axeX([0,1], 0.5, 1, bottom, 1, "", 2,0),
 LineStyle:=dotted,
 LineStyle:=solid, Width:=1, a:=exp(2*i*pi/3), b:=exp(i*pi/3),
 Path([i*Ymax+0.5, b, line, 0, a, 1, 1, arc, i*Ymax-0.5, line],0),
 Label( i*(0.5+Ymax/2), "$T$"),

 A:=i*1E-4, B:=exp(i*pi/3), C:=exp(2*i*pi/3),
 hLigne([A,B,C],1), maxNiv:=7,
 C':=hSym(C,[A,B]), Tsym(B,A,C',1),
 B':=hSym(B,[A,C]), Tsym(A,C,B',1),
 A':=hSym(A,[B,C]), Tsym(C,B,A',1),
  ]   

me donne:


Je peaufine le code avant de poster le fichier car dans l'état actuel le tracé n'est pas du tout optimisé, chaque triangle est dessiné un grand nombre de fois, il faut vraiment corriger cela et en ce moment je suis très pris. J'aurais plus de temps à la fin de la semaine.

_________________
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: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Mer 17 Juin - 2:09

Merci, j'attendais pas une réponse si rapide...

Le résultat a l'air impeccable, à par qu'on voit des arcs et pas des demi cercles à certains endroit, mais après tout ca ne gène pas la compréhension !

Je serai patient pour le code, effectivement si chaque triangle est dessiné 10 fois.....Smile

en tout cas merci de prendre le temps, j'apprécie.

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  P.Fradin le Mer 17 Juin - 10:00

homer3018 a écrit: à par qu'on voit des arcs et pas des demi cercles à certains endroit, mais après tout ca ne gène pas la compréhension !

C'est tout à fait normal! Le tracé des triangles c'est trois segments et non trois droites, bien sûr on peut tracer trois droites à la place des segments pour avoir les demi-cercles, voici un zoom:


_________________
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: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Mer 17 Juin - 13:22

Oui oui bien sûr, j'ai juste une préférence pour la version avec demi cercle au lieu des segments. Smile

le zoom est impeccable...
Par contre le programme intègre-t-il bien une sorte de "rang" ? ou alors une manière simple de modifier le programme pour avoir plus ou moins de réflexion ?

Je compte intégrer les dessins a un Beamer, je pense en faire 4/5 je sais pas trop encore, de manière à faire des superpositions et qu'on voit le pavage se propager au fur et à mesure des 4 ou 5 dessins...

à l'écrit ce sera différent, le motif de base, et par exemple celui dont est tiré le zoom suffiront amplement, mais à l'oral je pense que c'est une bonne solution.

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  P.Fradin le Ven 19 Juin - 23:59

Bonsoir,

J'ai enfin regardé un peu ce problème, mais je ne suis pas encore satisfait de la façon de générer le pavage. Dans un pavage classique du plan euclidien c'est relativement simple lorsqu'on connaît le groupe d'isométries. Mais là je n'ai pas encore trouvé le truc, alors je bricole. J'en suis là:



La variable globale maxNiv fixe le nombre d'itérations. Ma méthode est la suivante: je calcule d'abord la liste des sommets des maxNiv triangles partant 0 par réflexions successives sur le côté droit. Puis je fais la symétrie de tous ces triangles par rapport à chacun des troisièmes côtés. A chaque symétrie les nouveaux triangles obtenus s'ajoutent aux précédents pour la symétrie suivante (je ne sais pas si je suis bien clair), ensuite je trie les arêtes pour éliminer les doublons avant de peindre les triangles, puis de dessiner le contour.

Je me suis limité à une bande et au niveau 8; Le fichier source: hpavage-homer.teg.

_________________
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: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Sam 20 Juin - 21:30

Bonsoir,
c'est pas mal du tout moi je trouve!

j'ai pas encore regardé le code, mais bon je pense que je pourrai m'en tirer avec ça...
sinon pour le groupe des isométries je peux sûrement t'éclairer un peu, c'est quand même le sujet de mon mémoire Very Happy

bon alors il y a le groupe des isométries G = KAN 3 composantes connexes, en fait il y en a 4 mais la 4eme c'est l'identité...
K ce sont les rotations, A les homothéties, et N les translations
voici un schéma des trajectoires des 3 actions dans le plan :



Un gros théorème dit que le groupe des isométries est exactement égal à KAN (décomposition d'Iwasawa), une inclusion est évidente, mais l'autre demande pas mal de travail.
J'espère avoir aidé Smile

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  P.Fradin le Lun 22 Juin - 18:37

Bonjour,

Aujourd'hui un de mes collègues m'a suggéré une excellente idée, la figure lui faisait penser à deux générateurs exactement: t: z -> z+1 et s: z ->-1/z, et effectivement cela semble bien être le cas. J'ai opté pour la méthode suivante:

on part du triangle initial Tr et on construit une liste de triangles avec l'arbre suivant:



C'est une macro appelée transform qui construit récursivement la liste, et on choisit le niveau de profondeur, ensuite j'écarte les triangles qui ne sont pas dans la bande x in [-0.5,0.5], pour diminuer le nombre, reste à dessiner cette liste de triangles, ce qui donne:



On peut même pousser le vice en passant au disque hyperbolique en changeant la variable globale mode:=disc (ou mode:=plane pour revenir):



Le ficher source: hpavage-homer.teg

_________________
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: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Lun 22 Juin - 21:37

P.Fradin a écrit:la figure lui faisait penser à deux générateurs exactement: t: z -> z+1 et s: z ->-1/z,

Géométriquement ces 2 transformations correspondent exactement au processus que j'ai décrit plus haut! je ne savais pas que c'était la clef du problème Smile

Le dessin du disque me sera aussi utile, j'avais deja pensé à le faire en remarquant qu'il n'y avait qu'à changer le 'mode'.

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  P.Fradin le Lun 22 Juin - 21:45

homer3018 a écrit:
Géométriquement ces 2 transformations correspondent exactement au processus que j'ai décrit plus haut! je ne savais pas que c'était la clef du problème Smile

Oui je savais bien que ces deux transformations intervenaient dans le pavage puisque je les utilisais déjà Laughing , mais je ne savais pas qu'elles engendraient le groupe de pavage, or la clef du problème c'est bien de connaître un système générateur minimal du groupe de pavage, je n'ai pas été assez explicite lorsque j'ai parlé du groupe la première 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: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Mar 23 Juin - 11:47

D'accord, je comprends mieux.
en tout cas merci pour ces beaux dessins Very Happy

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Mar 23 Juin - 22:43

bon j'ai un petit soucis...

J'aurai voulu revenir au dessin initial, c'est-à-dire non limité à la bande -1/2 1/2, et enlevé les couleurs, trop surchargé à mon goût...

Les couleurs c'est bon, et la limitation dans la bande j'ai trouvé aussi, mais par contre ça va pas pour les 2 demi droites -1/2 et 1/2, car du coup au lieu des demi droites on voit 2 lignes hyperboliques dont on voit légèrement la courbure...
donc si on laisse les demi droites on voit bien 2 traits...

mais le plus gros problème c'est qu'une fois la limitation dans la bande supprimée, impossible de voir l'aperçu ou d'insérer la figure dans un tex quelconque, j'ai essayer tous les formats, et à chaque fois c'est le même problème, le pdf dit que les nombres sont trop grands et qu'il ne peut travailler avec...

dès que je remet la limitation dans la bande -1/2 1/2 je peux ravoir un aperçu mais dans le log il y a quand même des avertissements avec quelques nombres trop grand...

j'aurai juste aimé un maxniv genre 10 12 si c'est possible, plus large que -1/2 et 1/2, et sans couleur.
pour enlevé la limitation de la bande j'ai supprimé la ligne
Code:
Tr:= for Z in Tr By jump do if abs(Re(isobar(Z)))<0.5 then Z,jump fi od
et pour les couleurs il y avait 2 lignes avec des rand()...
Merci

ah oui j'oubliais presque : au rang 12 en mode:=disc tout fonctionne impec !!! alors ben ...je sais pas c'est normal ? pourtant c'est aussi un rang assez grand mais là tout va bien...

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  P.Fradin le Mar 23 Juin - 23:34

Les nombres trop grands sont dus aux limitations de TeX... (en fait ils trop grands mais pour TeX seulement Laughing ). Sans rentrer dans les détails techniques, je te propose la modification de l'élément appelé pavage, suivante:


Code:

[ if mode=plane then A:=i*1E-150 else A:=i*1E-6 fi,
  B:=exp(i*pi/3), C:=exp(2*i*pi/3),

 Tr:=[C,B,A,jump],  Tr:=transform(Tr,0.5,maxNiv),
 if mode=plane then
    Tr:= for Z in Tr By jump do if abs(Re(isobar(Z)))<Xmax then Z,jump fi od
 else
    Tr:= fdisc(Tr),
 fi,
 Tr':=Aretes( for Z in Tr by 1 do Z,0 od),  Tr':= for Z in Tr' by 2 do Z[1] od,
 for Z in Tr' by jump do hLigne(Z,0) od,
 if mode=plane then
    for k from Ent(Xmin)-0.5 to Ent(Xmax)+0.5 do  Ddroite(k,k+i) od,
    Label( i*(0.5+Ymax/2), "$T$"),
 fi]

J'ai éliminé les triangles hors fenêtre ainsi que les remplissages avec la couleur pour ne dessiner que les arêtes (après avoir trier celles-ci pour éviter les doublons). Dans l'élément appelé fond, tu peux changer la largeur de la fenêtre (macro view). Dans le plan, et dans le disque je peux aller jusqu'à maxNiv=12 sans problème.

_________________
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: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Mer 24 Juin - 11:53

C'est bon j'ai reussi à faire ce que je voulais...
maintenant c'est avec beamer que je m'agasse Laughing
Merci Smile

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Lun 29 Juin - 22:12

Reuh,

Bon j'hésitais à faire un autre post pour ce petit truc (encore) du coup j'en ai pas fait un nouveau, ca concerne le demi-plan et le disque conforme, toute mes excuse si j'aurai dû faire un autre post.

Il s'agit simplement de ceci :



Il faudrait juste que je puisse changer le mode pour avoir la même dans le disque conforme comme pour le pavage.
c'est surtout ça que je sais pas faire Neutral
Voilà voilà, je modifierai les graduations des demi cercle pour avoir à peu près ce que je veux dans le disque si necessaire...

Merci Smile

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  P.Fradin le Mar 30 Juin - 10:45

Bonjour,

En reprenant le fichier hpavage-homer.teg, en supposant qu'il s'agit d'un voisinage du point d'affixe -0.5, j'ai ajouté l'élément graphique suivant:

Code:

[if mode= plane then A:=i*1E-150 else A:=i*1E-6 fi,
 B:=exp(i*pi/3), C:=exp(2*i*pi/3),  D:=-0.5, E:=D+0.5*i,
 if mode=disc then A:=fdisc(A), $B:=fdisc(B), C:=fdisc(C), D:=fdisc(D), E:=fdisc(E) fi,
 B':=hSym(B,[A,C]),
 C'':=hSym(C,[A,B']),
 for p from 1 to maxNiv do
      hDroite(D,C''), hDroite( D, hSym(C'',[D,E])),
      B'':=hSym(B',[D,C'']), B':=C'', C'':=B'',
  od,
 hDroite(D,E)


et j'ai modifié l'élément fond ainsi:

Code:

if mode=plane then
  view(-0.6,-0.4,-0.015,0.15), Marges(0,0,0,0), size(15),
  background(full,beige),
  axeX([0,1], 0.5, 1, bottom, 1, "", 2,0),
else
 Fenetre(-1+i,1-i,5+5*i), Marges(0.1,0.1,0.1,0.1), size(10),
 FillStyle:=full,
 FillColor:=beige,
 Width:=8,
 Cercle(0,1)
fi     

ce qui me donne:



et


_________________
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: Pavage hyperbolique du demi plan de Poincaré

Message  homer3018 le Mar 30 Juin - 12:25

impeccable, j'ai modifié car c'était en 0 pas en -1/2, mais c'est bon j'obtiens ce que je veux Very Happy
merci beaucoup

homer3018

Nombre de messages : 52
Date d'inscription : 21/01/2008

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Re: Pavage hyperbolique du demi plan de Poincaré

Message  Contenu sponsorisé Aujourd'hui à 11:53


Contenu sponsorisé


Revenir en haut Aller en bas

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