Rev 18529 | Rev 18546 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 18529 | Rev 18530 | ||
---|---|---|---|
Line 17... | Line 17... | ||
17 | (nombre de sommets) pour chacun des sommets d'une face (pavage de Catalan);\ |
17 | (nombre de sommets) pour chacun des sommets d'une face (pavage de Catalan);\ |
18 | </li><li>\ |
18 | </li><li>\ |
19 | cas de type 2: transitifs sur l'ensemble des sommets et le premier paramètre est\ |
19 | cas de type 2: transitifs sur l'ensemble des sommets et le premier paramètre est\ |
20 | la configuration de sommets [d_1, ... , d_n],\ |
20 | la configuration de sommets [d_1, ... , d_n],\ |
21 | c'est-à-dire la suite des types de faces (nombre de sommets) ayant un sommet commun.\ |
21 | c'est-à-dire la suite des types de faces (nombre de sommets) ayant un sommet commun.\ |
22 | </li></ul>\ |
22 | </li><li>Le cas de type 3 montre le pavage et son dual sur le même dessin.</li></ul>\ |
23 | Dans le premier cas, la tuile de base est un polygone tangentiel\ |
23 | Dans le premier cas, la tuile de base est un polygone tangentiel\ |
24 | (polygone convexe admettant un cercle inscrit) dont les angles\ |
24 | (polygone convexe admettant un cercle inscrit) dont les angles\ |
25 | sont la suite des 2*pi/d_1, ..., 2*pi/d_n.\ |
25 | sont la suite des 2*pi/d_1, ..., 2*pi/d_n.\ |
26 | Dans le deuxième cas, le pavage est dual du pavage de type 1 de configuration de faces\ |
26 | Dans le deuxième cas, le pavage est dual du pavage de type 1 de configuration de faces\ |
27 | [d_1, ... , d_n].<br>\ |
27 | [d_1, ... , d_n].<br>\ |
Line 29... | Line 29... | ||
29 | le polygone est un polygone à d_1 côtés égaux et d_1 angles égaux à 2*pi/d_2.<br>\ |
29 | le polygone est un polygone à d_1 côtés égaux et d_1 angles égaux à 2*pi/d_2.<br>\ |
30 | Ces pavages existent si sum_i=1^n 1/d_i<(n-2)/2 et si les d_i sont pairs.\ |
30 | Ces pavages existent si sum_i=1^n 1/d_i<(n-2)/2 et si les d_i sont pairs.\ |
31 | Il semble qu'on puisse affaiblir cette deuxième condition en supposant que\ |
31 | Il semble qu'on puisse affaiblir cette deuxième condition en supposant que\ |
32 | pour tout i et j, d_i est pair ou d_{i-j}=d_{i+j}.<br>\ |
32 | pour tout i et j, d_i est pair ou d_{i-j}=d_{i+j}.<br>\ |
33 | Le pavage (qui est théoriquement infini) est limité au cercle de rayon 1-eps (eps>0.04).\ |
33 | Le pavage (qui est théoriquement infini) est limité au cercle de rayon 1-eps (eps>0.04).\ |
34 | Cependant, le nombre de polygones dessinés est limité à |
34 | Cependant, le nombre de polygones dessinés est limité à 400.\ |
35 | Si eps est un entier, seules les esp premières tuiles sont dessinées.\ |
35 | Si eps est un entier, seules les esp premières tuiles sont dessinées.\ |
36 | <br>\ |
36 | <br>\ |
37 | L'option depl change le centrage initial du polygone de base: entre autre,\ |
37 | L'option depl change le centrage initial du polygone de base: entre autre,\ |
38 | depl=1: le centre du polygone de départ est 0,\ |
38 | depl=1: le centre du polygone de départ est 0,\ |
39 | depl=0 le cercle est tangent au point 0 au polygone. |
39 | depl=0 :le cercle est tangent au point 0 au polygone. |
40 | 40 | ||
41 | type=1: catalan |
41 | type=1: catalan |
42 | type=2: dual de catalan |
42 | type=2: dual de catalan |
43 | type=3: les deux |
43 | type=3: les deux |
44 | 44 | ||
Line 47... | Line 47... | ||
47 | !!!avec |a|>|b|; elle envoie 0 sur b/\bar{a} et le point 1 de l'horizon sur\ |
47 | !!!avec |a|>|b|; elle envoie 0 sur b/\bar{a} et le point 1 de l'horizon sur\ |
48 | !!!a/\bar{a}. |
48 | !!!a/\bar{a}. |
49 | slib_example=[4,8,10],0.1,html type=1\ |
49 | slib_example=[4,8,10],0.1,html type=1\ |
50 | [4,8,10],0.01,html color=blue depl=1\ |
50 | [4,8,10],0.01,html color=blue depl=1\ |
51 | [4,8,10],0.01,html color=blue type=2\ |
51 | [4,8,10],0.01,html color=blue type=2\ |
52 | [ |
52 | [4,8,10],0.01,html color=[blue,green] type=3\ |
53 | [8,8,4,8],0.01,html |
53 | [8,8,4,8],0.01,html type=2\ |
54 | [ |
54 | [8,8,4,8],0.01,html \ |
- | 55 | [4,8,6,4,6,6],0.01,html color=blue type=1\ |
|
- | 56 | [4,8,6,4,6,6],0.01,html color=green type=2\ |
|
- | 57 | [4,8,6,4,6,6],0.01,html color=[blue,green] type=3\ |
|
55 | [34,5,34],0.1,html fill=[1]\ |
58 | [34,5,34],0.1,html color=green fill=[1]\ |
56 | [6,8,10],0.1,html color=[blue,grey] fill\ |
59 | [6,8,10],0.1,html color=[blue,grey] fill\ |
57 | [6,8,10],0.1,html fill=[1,5,7]\ |
60 | [6,8,10],0.1,html fill=[1,5,7]\ |
58 | [4,8,9,8,6],0.01,html |
61 | [4,8,9,8,6],0.01,html |
59 | !exit |
62 | !exit |
60 | :proc |
63 | :proc |
61 | 64 | ||
62 | !reset slib_Test slib_type slib_bound slib_size slib_color slib_dessin slib_dessin1 slib_dessin2 slib_dessin3 slib_depl slib_fill slib_dual |
65 | !reset slib_Test slib_type slib_type0 slib_bound slib_size slib_color slib_dessin slib_dessin1 slib_dessin2 slib_dessin3 slib_depl slib_fill slib_dual |
63 | !distribute items $wims_read_parm into slib_data,slib_bound,slib_option |
66 | !distribute items $wims_read_parm into slib_data,slib_bound,slib_option |
64 | !set slib_gpprog=hyptiling |
67 | !set slib_gpprog=hyptiling |
65 | !if $slib_bound<0.01 |
68 | !if $slib_bound<0.01 |
66 | !!reset slib_bound |
69 | !!reset slib_bound |
67 | !endif |
70 | !endif |
Line 70... | Line 73... | ||
70 | !set slib_size=!getopt size in $slib_option |
73 | !set slib_size=!getopt size in $slib_option |
71 | !default slib_size=600 |
74 | !default slib_size=600 |
72 | !set slib_color=!getopt color in $slib_option |
75 | !set slib_color=!getopt color in $slib_option |
73 | !set slib_color=!declosing $slib_color |
76 | !set slib_color=!declosing $slib_color |
74 | !set slib_type=!getopt type in $slib_option |
77 | !set slib_type=!getopt type in $slib_option |
75 | !default slib_type=1 |
- | |
76 | !if $slib_type=1 |
- | |
77 | !if fill iswordof $slib_option |
- | |
78 | !set slib_pol=fhyppolygon |
- | |
79 | !default slib_color=black,white |
- | |
80 | !else |
- | |
81 | !set slib_pol=hyppolygon |
- | |
82 |
|
78 | !default slib_color=black |
83 | !endif |
- | |
84 | !endif |
- | |
85 | !if $slib_type=2 |
- | |
86 | !set slib_pol=hyprays |
- | |
87 | !default slib_color=black,black |
- | |
88 | !endif |
- | |
89 | - | ||
90 | !set slib_color=$slib_color,$(slib_color[1]) |
79 | !set slib_color=$slib_color,$(slib_color[1]) |
91 | !set slib_color=$(slib_color[1,2]) |
80 | !set slib_color=$(slib_color[1,2]) |
92 | !set slib_fill=!getopt fill in $slib_option |
81 | !set slib_fill=!getopt fill in $slib_option |
93 | !set slib_fill=!declosing $slib_fill |
82 | !set slib_fill=!declosing $slib_fill |
94 | !set slib_type=!getopt type in $slib_option |
- | |
95 | !set slib_depl=!getopt depl in $slib_option |
83 | !set slib_depl=!getopt depl in $slib_option |
96 | !default slib_depl=0 |
84 | !default slib_depl=0 |
97 | !default slib_type=1 |
85 | !default slib_type=1 |
98 | !set slib_pqr=!declosing $slib_data |
86 | !set slib_pqr=!declosing $slib_data |
99 | !set slib_pqr=!exec pari [$slib_pqr] |
87 | !set slib_pqr=!exec pari [$slib_pqr] |
100 | !if regular notin $slib_option |
88 | !if regular notin $slib_option |
101 | !set slib_n=!itemcnt $slib_pqr |
89 | !set slib_n=!itemcnt $slib_pqr |
102 | !set slib_testexist=!exec pari a=[$slib_pqr];test=vecsum(vector($slib_n,i,1/a[i]))>=($slib_n-2)/2;a=concat(a,a[1]);for(i=2,$slib_n,if(a[i]%2==1, test+=a[i-1]!=a[i+1])); test |
90 | !set slib_testexist=!exec pari a=[$slib_pqr];test=vecsum(vector($slib_n,i,1/a[i]))>=($slib_n-2)/2;a=concat(a,a[1]);for(i=2,$slib_n,if(a[i]%2==1, test+=a[i-1]!=a[i+1])); test |
103 | !if $slib_testexist>0 |
91 | !if $slib_testexist>0 |
104 | !set slib_out=error $slib_testexist>0 |
92 | !set slib_out=error $slib_testexist>0 |
105 | !exit |
93 | !exit |
106 | !endif |
94 | !endif |
107 | !endif |
95 | !endif |
108 | !if regular isin $slib_option |
96 | !if regular isin $slib_option |
109 | !if $[1/$(slib_pqr[1])+1/$(slib_pqr[2])]>=1/2 |
97 | !if $[1/$(slib_pqr[1])+1/$(slib_pqr[2])]>=1/2 |
110 | slib_out=Error regular |
98 | slib_out=Error regular |
111 | !exit |
99 | !exit |
Line 121... | Line 109... | ||
121 | !readproc gp/$slib_gpprog.gp |
109 | !readproc gp/$slib_gpprog.gp |
122 | !set slib_hyptiling=!exec pari tikz=0;$(slib_header_$slib_gpprog); |
110 | !set slib_hyptiling=!exec pari tikz=0;$(slib_header_$slib_gpprog); |
123 | !!endif |
111 | !!endif |
124 | slib_depl:0 pas au centre |
112 | slib_depl:0 pas au centre |
125 | 1 au centre |
113 | 1 au centre |
126 | - | ||
- | 114 | !default slib_type=1 |
|
127 | 1-> 1,2 |
115 | 1-> 1,2 |
128 | 2-> 3,4 |
116 | 2-> 3,4 |
129 |
|
117 | 3- > le faire en deux fois. |
130 | !set |
118 | !set slib_type0=$slib_type |
- | 119 | !if $slib_type=3 |
|
131 |
|
120 | !set slib_type0=1,2 |
- | 121 | !else |
|
132 |
|
122 | !set slib_type0=$slib_type |
- | 123 | !endif |
|
- | 124 | !set slib_hyptiling=!exec pari wwww=wims_catalan([$slib_pqr],$slib_bound,$slib_depl,$(slib_type0[1]));default(realprecision,3);wwww |
|
133 |
|
125 | !set slib_data=!trim $(slib_hyptiling[2*$(slib_type0[1])-1,2*$(slib_type0[1])]) |
134 | 126 | ||
135 | slib_som=!declosing $slib_som |
- | |
136 | slib_face=!declosing $slib_face |
- | |
137 | slib_facecnt=!itemcnt $slib_face |
- | |
138 | !for slib_k=1 to $slib_facecnt |
- | |
139 | !reset slib_tmp slib_test slib_col |
- | |
140 | !set slib_ff=!declosing $(slib_face[$slib_k]) |
- | |
141 |
|
127 | !if $(slib_type0[1])=1 |
142 |
|
128 | !if fill iswordof $slib_option |
143 | !set |
129 | !set slib_pol=fhyppolygon |
144 | !endif |
- | |
145 | !set slib_ffcnt=!itemcnt $slib_ff |
- | |
146 | !set slib_col=$(slib_color[1+$(slib_ff[$[$(slib_ff[1])+2]])]) |
- | |
147 | !if $slib_k isin $slib_fill |
- | |
148 |
|
130 | !default slib_color=black,white |
149 | !else |
131 | !else |
150 | !set |
132 | !set slib_pol=hyppolygon |
151 | !endif |
- | |
152 |
|
133 | !set slib_col=$(slib_color[1]) |
153 | !set slib_tmp=!append item $(slib_som[$(slib_ff[2..$(slib_ff[1])+1]);]) to $slib_tmp |
- | |
154 | !set slib_tmp=!replace internal ; by , in $slib_tmp |
- | |
155 | !if $slib_k<500 |
- | |
156 | !set slib_dessin=!append line $slib_tmp to $slib_dessin |
- | |
157 | !else |
- | |
158 | !goto out |
- | |
159 | !if $slib_k<800 |
- | |
160 | !set slib_dessin1=!append line $slib_tmp to $slib_dessin1 |
- | |
161 | !else |
- | |
162 | !if $slib_k<2400 |
- | |
163 | !set slib_dessin2=!append line $slib_tmp to $slib_dessin2 |
- | |
164 | !else |
- | |
165 | !set slib_dessin3=!append line $slib_tmp to $slib_dessin3 |
- | |
166 | !endif |
- | |
167 | !endif |
- | |
168 | !endif |
134 | !endif |
- | 135 | !else |
|
- | 136 | !set slib_pol=hyprays |
|
- | 137 | !set slib_col=$(slib_color[1]) |
|
169 |
|
138 | !endif |
- | 139 | !readproc slib/geo2D/offhyptiling |
|
- | 140 | ||
- | 141 | !if $slib_type=3 |
|
- | 142 | !set slib_type0=2 |
|
- | 143 | !set slib_hyptiling=!exec pari wwww=wims_catalan([$slib_pqr],$slib_bound,$slib_depl,$(slib_type0));default(realprecision,3);wwww |
|
- | 144 | !set slib_data=!trim $(slib_hyptiling[2*$(slib_type0)-1,2*$(slib_type0)]) |
|
- | 145 | !set slib_pol=hyprays |
|
- | 146 | !set slib_col=$(slib_color[2]) |
|
- | 147 | !readproc slib/geo2D/offhyptiling |
|
170 |
|
148 | !endif |
171 | :out |
149 | |
- | 150 | !! depends only on $slib_data -- could be an "offhypdraw" |
|
172 | 151 | ||
173 | !set slib_range=-1,1 |
152 | !set slib_range=-1,1 |
174 | !set slib_out=xrange $slib_range\ |
153 | !set slib_out=xrange $slib_range\ |
175 | yrange $slib_range\ |
154 | yrange $slib_range\ |
176 | circles black,0,0,1\ |
155 | circles black,0,0,1\ |
177 | $slib_dessin\ |
156 | $slib_dessin\ |
178 |
|
157 | $slib_dessin1\ |
179 | - | ||
180 | $slib_dessin2\ |
158 | $slib_dessin2\ |
181 | $slib_dessin3 |
159 | $slib_dessin3 |
182 | - | ||
183 | !if url iswordof $slib_option or html iswordof $slib_option |
160 | !if url iswordof $slib_option or html iswordof $slib_option |
184 | !set insdraw_size=$slib_size,$slib_size |
161 | !set insdraw_size=$slib_size,$slib_size |
185 | !insdraw $slib_out |
162 | !insdraw $slib_out |
186 | !set slib_out=$ins_url |
163 | !set slib_out=$ins_url |
187 | !if html iswordof $slib_option |
164 | !if html iswordof $slib_option |