File: polygon

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 (109 lines) | stat: -rw-r--r-- 3,398 bytes parent folder | download | duplicates (2)
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
!if $wims_read_parm!=slib_header
  !goto proc
!endif

slib_author=Bernadette, Perrin-Riou

slib_require=pari
slib_example=6,[green,blue,green,blue,green,blue]\
6,[green,blue,green,blue,green,blue],,html\
5,[green,blue,green,blue,orange],vertex,html\
4,[green,blue,green,blue,green,blue],edge,html\
8,[green,blue,green,blue,green,blue,green,blue],circle,html

!exit

:proc
slib_out=

!distribute items $wims_read_parm into slib_n,slib_color,slib_option,slib_url
slib : en entre n, liste de couleurs , sommets, arete ...
!default slib_n=5
slib_n=$[$slib_n]
!default slib_option=edge
!if $slib_option=circle
  slib_option=$slib_option edge
!endif
slib_color=!declosing $slib_color
slib_vertex = !exec pari concat(vector($slib_n,i,[ cos(2*i*pi/$slib_n),sin(2*i*pi/$slib_n)]))
slib_arete= !exec pari cos(pi/$slib_n)*concat(vector($slib_n,i,[ cos(2*i*pi/$slib_n+pi/$slib_n),sin(2*i*pi/$slib_n+pi/$slib_n)]))
!if vertex iswordof $slib_option
  slib_points_s = !exec pari 0.4*concat(vector($slib_n,i,[ cos(2*i*pi/$slib_n+pi/(2*$slib_n)),sin(2*i*pi/$slib_n+pi/(2*$slib_n))]))
!endif
!if edge iswordof $slib_option
  slib_points_c= !exec pari 0.4*concat(vector($slib_n,i,[ cos(2*i*pi/$slib_n+3*pi/(2*$slib_n)),sin(2*i*pi/$slib_n+3*pi/(2*$slib_n))]))
!endif
!if vertex iswordof $slib_option and edge iswordof $slib_option
  slib_points_cs=!exec pari 0.4*concat(vector($slib_n,i,[ cos(2*i*pi/$slib_n+pi/(2*$slib_n)),sin(2*i*pi/$slib_n+pi/(2*$slib_n)),cos(2*i*pi/$slib_n+3*pi/(2*$slib_n)),sin(2*i*pi/$slib_n+3*pi/(2*$slib_n))]))
!endif

!reset slib_lignec slib_lignes slib_lignesc

!for slib_i=1 to $slib_n
  slib_lignec=!append item 0,0,$(slib_vertex[2*$slib_i-1,2*$slib_i]) to $slib_lignec
  slib_lignes=!append item 0,0,$(slib_arete[2*$slib_i-1,2*$slib_i]) to $slib_lignes
  slib_lignesc=!append item 0,0,$(slib_vertex[2*$slib_i-1,2*$slib_i]),0,0,$(slib_arete[2*$slib_i-1,2*$slib_i]) \
    to $slib_lignesc
!next

!reset slib_fills slib_fillc slib_fillcs

!for slib_i=1 to $slib_n
  slib_color_=!declosing $(slib_color[$slib_i])
  slib_fills=$slib_fills\
fill $(slib_points_s[2*$slib_i-1,2*$slib_i]),$slib_color_
  slib_fillc=$slib_fillc\
fill $(slib_points_c[2*$slib_i-1,2*$slib_i]),$slib_color_
 slib_color__=$(slib_color[2*$slib_i-1])
  slib_fillcs=$slib_fillcs\
fill $(slib_points_cs[4*$slib_i-3,4*$slib_i-2]),$slib_color__\
fill $(slib_points_cs[4*$slib_i-1,4*$slib_i]),$slib_color_
!next

!if $slib_option issametext
  slib_out=\
xrange -1.5,1.5\
yrange -1.5,1.5\
polygon black,$slib_vertex
!endif
!if circle iswordof $slib_option
  slib_o= trange 0,2*pi\
plot black,sin(t),cos(t)
!else
  slib_o=polygon black,$slib_vertex
!endif
!if vertex iswordof $slib_option and edge notwordof $slib_option
  slib_out=\
xrange -1.5,1.5\
yrange -1.5,1.5\
$slib_o\
segments black,$slib_lignes\
$slib_fills
!endif
!if vertex notwordof $slib_option and edge iswordof $slib_option
  slib_out=\
xrange -1.5,1.5\
yrange -1.5,1.5\
$slib_o\
segments black,$slib_lignec\
$slib_fillc
!endif
!if vertex iswordof $slib_option and edge iswordof $slib_option
  slib_out=\
xrange -1.5,1.5\
yrange -1.5,1.5\
$slib_o\
segments black,$slib_lignes,$slib_lignec\
$slib_fillcs
!endif

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