Subversion Repositories wimsdev

Rev

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é à 500.\
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
[8,8,4,8],0.01,html color=blue type=1\
52
[4,8,10],0.01,html color=[blue,green] type=3\
53
[8,8,4,8],0.01,html color=blue type=2\
53
[8,8,4,8],0.01,html type=2\
54
[4,8,6,4,6,6],0.01,html\
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
    !default slib_color=black
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
!set slib_hyptiling=!exec pari wwww=wims_catalan([$slib_pqr],$slib_bound,$slib_depl,$slib_type);default(realprecision,3);wwww
117
3- > le faire en deux fois.
130
!set slib_data=!trim $(slib_hyptiling[2*$slib_type-1,2*$slib_type])
118
!set slib_type0=$slib_type
-
 
119
!if $slib_type=3
131
!! depends only on $slib_data -- could be an "offhypdraw"
120
  !set slib_type0=1,2
-
 
121
!else
132
!set slib_data=!declosing $slib_data
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
!distribute items $slib_data into slib_som,slib_face
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
  !if $slib_type=2
127
!if $(slib_type0[1])=1
142
    !set slib_ffcnt=!itemcnt $slib_ff
128
  !if fill iswordof $slib_option
143
    !set slib_ff=$slib_ffcnt,$slib_ff,1
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
    !set slib_pol1=f$slib_pol
130
    !default slib_color=black,white
149
  !else
131
  !else
150
    !set slib_pol1=$slib_pol
132
    !set slib_pol=hyppolygon
151
  !endif
-
 
152
  !set slib_tmp=$slib_pol1 $(slib_col)
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
:end
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
!next
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
$slib_dessin1
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