File: afftiling

package info (click to toggle)
wims 2%3A4.29a%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 185,704 kB
  • sloc: xml: 366,687; javascript: 120,570; ansic: 62,341; java: 62,170; sh: 7,744; perl: 3,937; yacc: 3,217; cpp: 1,915; lex: 1,805; makefile: 1,084; lisp: 914; pascal: 601; python: 520; php: 318; asm: 7
file content (89 lines) | stat: -rw-r--r-- 3,001 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
!if $wims_read_parm!=slib_header
  !goto proc
!endif
slib_title=Pavage affine par des triangles
slib_author=Bernadette, Perrin-Riou
slib_parms=3\
,[p,q,r]\
10,bound\
size=600 color=[black,white] option (mots) : size= color=[] html/url

slib_out=dessin du pavage affine par des triangles ou code ou url selon les cas

slib_comment=Les angles du triangle de base sont pi/p,pi/q,pi/r avec 1/p+1/q+1/r=1.\
  le deuxime paramtre bound permet de faire afficher environ bound^2 triangles.\
  Attention, si bound est trop grand, il y aura une erreur de WIMS.
slib_example=[2,4,4],,size=400 color=black html\
[2,3,6],10,size=400 color=black html\
[2,6,3],10,size=400 color=black html\
[2,3,6],10,size=400 color=black html\
[2,4,4],20,size=400 color=black html\
[3,3,3],10,size=400 color=[black,red] html\
[2,4,4],2,size=400 color=[black,red] html\
[2,4,4],5,size=400 color=[black,red] html
!exit
:proc

!reset slib_bound slib_size slib_color slib_dessin slib_dessin1 slib_dessin2 slib_dessin3
!distribute items $wims_read_parm into slib_data,slib_bound,slib_option
!set slib_size=!getopt size in $slib_option
!default slib_size=600
!set slib_color=!getopt color in $slib_option
!set slib_color=!declosing $slib_color
!default slib_color=black
!default slib_bound=10
!set slib_pqr=!declosing $slib_data
!if $[1/$(slib_pqr[1]) + 1/$(slib_pqr[2])+1/$(slib_pqr[3])]!=1
  slib_out=Error
  !exit
!endif
!set wims_multiexec=$wims_multiexec pari
!if $slib_header_coxaff=
  !readproc gp/coxaff.gp
  !set slib_coxaff=!exec pari $slib_header_coxaff;
!endif
!set slib_coxaff=!exec pari wwww=aff3($slib_pqr,$slib_bound);default(realprecision,3);wwww
!set slib_coxaff=!trim $slib_coxaff
!distribute items $slib_coxaff into slib_range, slib_data
!set slib_data=!declosing $slib_data
!set slib_range=!declosing $slib_range
slib_datacnt=!rowcnt $slib_data

!for slib_k=1 to $slib_datacnt
  slib_col=$(slib_color[1+$(slib_data[$slib_k;7])])
  !if $slib_col!=$empty
    !if $slib_k<600
      !set slib_dessin=!append line ftriangle $(slib_data[$slib_k;1..6]),$slib_col to $slib_dessin
    !else
      !if $slib_k<1200
        !set slib_dessin1=!append line ftriangle $(slib_data[$slib_k;1..6]),$slib_col to $slib_dessin1
      !else
        !if $slib_k<2400
          !set slib_dessin2=!append line ftriangle $(slib_data[$slib_k;1..6]),$slib_col to $slib_dessin2
        !else
          !set slib_dessin3=!append line $(slib_data[$slib_k;1..6]),$slib_col to $slib_dessin2
        !endif
      !endif
    !endif
  !endif
!next

!set slib_range=$[floor(min($(slib_range[1]),$(slib_range[3])))],$[ceil(max($(slib_range[2]),$(slib_range[4])))]
slib_out=xrange $slib_range\
yrange $slib_range\
$slib_dessin\
$slib_dessin1\
$slib_dessin2\
$slib_dessin3

!if url iswordof $slib_option or html iswordof $slib_option
  !set insdraw_size=$slib_size,$slib_size
  !insdraw $slib_out
  slib_out=$ins_url
  !if html iswordof $slib_option
    slib_out=<img src="$ins_url" alt="">
  !else
    slib_out=$slib_out,$insdraw_size
  !endif
!endif