Subversion Repositories wimsdev

Rev

Rev 18546 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
18401 bpr 1
!if $wims_read_parm!=slib_header
2
  !goto proc
3
!endif
4
slib_title=Pavage affine par des triangles
5
slib_author=Bernadette, Perrin-Riou
6
slib_parms=3\
7
,[p,q,r]\
8
10,bound\
9
size=600 color=[black,white] option (mots) : size= color=[] html/url
10
 
11
slib_out=dessin du pavage affine par des triangles ou code ou url selon les cas
12
 
18542 bpr 13
slib_comment=Les angles du triangle de base sont 2pi/p,2pi/q,2pi/r avec 1/p+1/q+1/r=1/2.\
18401 bpr 14
  le deuxième paramètre bound permet de faire afficher environ bound^2 triangles.\
15
  Attention, si bound est trop grand, il y aura une erreur de WIMS.
18546 bpr 16
slib_example=[3,3,3,3,3,3],0.001,size=400 color=black html type=3\
17
[4,4,4,4],0.001,size=400 color=black html type=3\
18
[3,4,6,4],0.001,size=400 color=black html type=3\
19
[3,6,3,6],0.001,size=400 color=[black,red] html type=3\
20
[3,4,6,4],0.01,size=400 color=black html type=1\
21
[3,4,6,4],0.001,size=400 color=black html type=3\
22
[3,4,6,4],0.001,size=400 color=black html type=1\
23
[3,4,6,4],0.01,size=400 color=black html type=2\
24
[4,6,12],0.01,size=400 color=black html type=1\
25
[4,6,12],0.01,size=400 color=black html type=2\
26
[4,6,12],0.01,size=400 color=[black,red] html type=3\
27
[3,4,6,4],0.01,size=400 color=black html type=3\
28
[3,4,6,4],0.01,size=400 color=black html type=3\
29
[4,8,8],0.01,size=400 color=black html type=3\
30
[3,3,3,3,3,3],5,size=400 color=black html type=3\
31
 
18401 bpr 32
!exit
33
:proc
34
 
18636 bpr 35
!reset slib_Test slib_type slib_type0 slib_bound slib_cnt slib_size slib_color slib_dessin slib_dessin1 slib_dessin2 slib_dessin3 slib_depl slib_fill slib_dual
18401 bpr 36
!distribute items $wims_read_parm into slib_data,slib_bound,slib_option
18546 bpr 37
!set slib_gpprog=afftiling
38
!if $slib_bound<0.01
39
  !!reset slib_bound
40
!endif
41
!set wims_multiexec=$wims_multiexec pari
42
!default slib_bound=0.01
18401 bpr 43
!set slib_size=!getopt size in $slib_option
44
!default slib_size=600
45
!set slib_color=!getopt color in $slib_option
46
!set slib_color=!declosing $slib_color
18546 bpr 47
!set slib_type=!getopt type in $slib_option
18401 bpr 48
!default slib_color=black
18546 bpr 49
!set slib_color=$slib_color,$(slib_color[1])
50
!set slib_color=$(slib_color[1,2])
51
!set slib_fill=!getopt fill in $slib_option
52
!set slib_fill=!declosing $slib_fill
53
!set slib_depl=!getopt depl in $slib_option
54
!default slib_depl=0
55
!default slib_type=1
18636 bpr 56
!if canvasdraw iswordof $slib_option
57
  !set slib_cnt=100
58
  !if $slib_bound>1
59
    !set slib_cnt=$slib_bound
60
  !else
61
    !if $slib_type=3
62
      !set slib_cnt=$[$slib_cnt/2]
63
    !endif
64
  !endif
65
!else
66
  !set slib_cnt=100
67
!endif
18401 bpr 68
!set slib_pqr=!declosing $slib_data
18546 bpr 69
!set slib_pqr=!exec pari [$slib_pqr]
70
!if regular notin $slib_option
71
  !set slib_n=!itemcnt $slib_pqr
72
  !set slib_testexist=!exec pari a=[$slib_pqr];test=vecsum(vector($slib_n,i,1/a[i]))!=($slib_n-2)/2;if(a[1]%2==1, test+=a[$slib_n]!=a[2]);a=concat(a,a[1]);for(i=2,$slib_n,if(a[i]%2==1,test+=a[i-1]!=a[i+1])); test
73
  !if $slib_testexist>0
74
    !set slib_out=error $slib_testexist>0
75
    !exit
76
  !endif
77
!endif
78
!if regular isin $slib_option
79
  !if $[1/$(slib_pqr[1])+1/$(slib_pqr[2])]!=1/2
80
    slib_out=Error regular
81
    !exit
82
  !endif
83
  !set slib_pqr=!makelist $(slib_pqr[2]) for x=1 to $(slib_pqr[1])
84
!endif
85
!set slib_testint=!exec pari t=[$slib_pqr]; t-round(t)==0
86
!if $slib_testint!=1
87
  slib_out=Error integers
18401 bpr 88
  !exit
89
!endif
18546 bpr 90
!!if $(slib_header_$slib_gpprog)=
91
  !readproc gp/$slib_gpprog.gp
92
  !set slib_tiling=!exec pari tikz=0;$(slib_header_$slib_gpprog);
93
!!endif
94
slib_depl:0 pas au centre
95
1 au centre
96
!default slib_type=1
97
1-> 1,2
98
2-> 3,4
99
3- > le faire en deux fois.
100
!set slib_type0=$slib_type
101
!if $slib_type=3
102
  !set slib_type0=1,2
103
!else
104
  !set slib_type0=$slib_type
18401 bpr 105
!endif
18546 bpr 106
!set slib_tiling=!exec pari wwww=wims_catalan([$slib_pqr],$slib_bound,$slib_depl,$(slib_type0[1]));default(realprecision,3);wwww
107
!set slib_data=!trim $(slib_tiling[2*$(slib_type0[1])-1,2*$(slib_type0[1])])
108
!if $(slib_type0[1])=1
109
  !if fill iswordof $slib_option
110
    !set slib_pol=fpolygon
111
    !default slib_color=black,white
112
  !else
113
    !set slib_pol=polygon
114
    !set slib_col=$(slib_color[1])
18401 bpr 115
  !endif
18546 bpr 116
!else
117
  !set slib_pol=rays
118
  !set slib_col=$(slib_color[1])
119
!endif
120
!readproc slib/geo2D/offtiling
121
!if $slib_type=3
122
  !set slib_type0=2
123
  !set slib_tiling=!exec pari wwww=wims_catalan([$slib_pqr],$slib_bound,$slib_depl,$(slib_type0));default(realprecision,3);wwww
124
  !set slib_data=!trim $(slib_tiling[2*$(slib_type0)-1,2*$(slib_type0)])
125
  !set slib_pol=rays
126
  !set slib_col=$(slib_color[2])
127
  !readproc slib/geo2D/offtiling
128
!endif
129
!set slib_out=xrange $slib_range\
18401 bpr 130
yrange $slib_range\
131
$slib_dessin\
132
$slib_dessin1\
133
$slib_dessin2\
134
$slib_dessin3
18636 bpr 135
 
18401 bpr 136
!if url iswordof $slib_option or html iswordof $slib_option
137
  !set insdraw_size=$slib_size,$slib_size
138
  !insdraw $slib_out
18546 bpr 139
  !set slib_out=$ins_url
18401 bpr 140
  !if html iswordof $slib_option
18546 bpr 141
    !if alt iswordof $slib_option
142
      !set slib_alt=[$slib_pqr]
143
    !else
144
      !reset slib_alt
145
    !endif
146
    !set slib_out=<img src="$ins_url" alt="$slib_alt">
18401 bpr 147
  !else
18546 bpr 148
    !set slib_out=$slib_out,$insdraw_size
18401 bpr 149
  !endif
150
!endif