Rev 13587 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
8560 | bpr | 1 | !if $wims_read_parm!=slib_header |
13587 | bpr | 2 | !goto proc |
20 | reyssat | 3 | !endif |
4158 | bpr | 4 | |
4351 | bpr | 5 | slib_author=Bernadette, Perrin-Riou |
4172 | bpr | 6 | slib_example=[0,0,1;0,0,1;1,1,0],red,blue, [A,B,C],[1,3,green;3,2,purple],html\ |
7 | [0,0,1,1;0,0,1,1;1,1,0,1;1,1,1,0],red,blue,,[1,3,2,green]\ |
||
12769 | bpr | 8 | [0,0,1,1;0,0,1,1;1,1,0,1;1,1,1,0],red,blue,,[1,3,2,green],html\ |
9 | [0,0,4,4;0,0,1,1;4,1,0,1;4,1,1,0],red,blue,,[1,3,2,green],html weight |
||
7692 | bpr | 10 | slib_require=pari |
20 | reyssat | 11 | !exit |
12 | |||
13 | :proc |
||
14 | slib_color1= |
||
15 | slib_color2= |
||
7692 | bpr | 16 | slib_names = |
12684 | bpr | 17 | !distribute item $wims_read_parm into slib_G,slib_color1,slib_color2,slib_names,slib_path,slib_option |
20 | reyssat | 18 | slib_path=!declosing $slib_path |
12769 | bpr | 19 | slib_path=!translate internal ; to $\ |
20 | reyssat | 20 | $ in $slib_path |
21 | slib_cnt_path=!linecnt $slib_path |
||
12769 | bpr | 22 | !for slib_i=1 to $slib_cnt_path |
12676 | bpr | 23 | slib_path_prov= !line $slib_i of $slib_path |
24 | slib_path_color$slib_i= !item -1 of $slib_path_prov |
||
25 | slib_path_color$slib_i= !declosing $(slib_path_color$slib_i) |
||
26 | slib_path$slib_i=!item 1 to -2 of $slib_path_prov |
||
12769 | bpr | 27 | slib_path$slib_i=!nospace $(slib_path$slib_i) |
7692 | bpr | 28 | !next slib_i |
12684 | bpr | 29 | |
20 | reyssat | 30 | slib_G=!declosing $slib_G |
31 | |||
8560 | bpr | 32 | slib_G=!translate internal ; to $\ |
20 | reyssat | 33 | $ in $slib_G |
34 | |||
8560 | bpr | 35 | slib_GG=!translate internal $\ |
20 | reyssat | 36 | $ to ; in $slib_G |
37 | |||
38 | |||
7692 | bpr | 39 | slib_or=!exec pari Mat([$slib_GG])==Mat([$slib_GG])~ |
20 | reyssat | 40 | |
41 | slib_names=!declosing $slib_names |
||
42 | slib_color1=!declosing $slib_color1 |
||
43 | slib_color2=!declosing $slib_color2 |
||
44 | slib_n=!line 1 of $slib_G |
||
45 | slib_n=!itemcnt $slib_n |
||
46 | !default slib_color1=blue |
||
47 | !default slib_color2=blue |
||
8560 | bpr | 48 | !default slib_names=!values slib_i for slib_i=1 to $slib_n |
20 | reyssat | 49 | |
50 | !for slib_i =1 to $slib_n |
||
12676 | bpr | 51 | slib_COS$slib_i=$[cos(2*pi*$slib_i/$slib_n)] |
52 | slib_SIN$slib_i=$[sin(2*pi*$slib_i/$slib_n)] |
||
20 | reyssat | 53 | !next slib_i |
54 | slib_dessin = xrange -1.5,1.5\ |
||
55 | yrange -1.5,1.5 |
||
7692 | bpr | 56 | !for slib_i=1 to $slib_n |
12676 | bpr | 57 | slib_name =!item $slib_i of $slib_names |
12684 | bpr | 58 | !for slib_k=1 to $slib_cnt_path |
12685 | bpr | 59 | !!! vertex |
60 | !if $slib_i isitemof $(slib_path$slib_k) and $($(slib_path$slib_k)[3])=$empty |
||
12684 | bpr | 61 | slib_couleur=$(slib_path_color$slib_k) |
62 | !break |
||
63 | !endif |
||
64 | !next |
||
65 | !default slib_couleur=$slib_color1 |
||
12676 | bpr | 66 | slib_dessin=$slib_dessin\ |
12684 | bpr | 67 | disk $(slib_COS$slib_i),$(slib_SIN$slib_i), 6,$slib_couleur\ |
68 | text black, $[1.3*$(slib_COS$slib_i)],$[1.3*$(slib_SIN$slib_i)], medium, $slib_name |
||
69 | !reset slib_couleur |
||
12676 | bpr | 70 | !if $slib_or=1 |
71 | !for slib_j=1 to $slib_i |
||
72 | slib_r=!line $slib_i of $slib_G |
||
73 | slib_u=!item $slib_j of $slib_r |
||
12769 | bpr | 74 | !if $slib_u>0 |
12676 | bpr | 75 | slib_couleur=$slib_color2 |
76 | !for slib_k=1 to $slib_cnt_path |
||
77 | !if $slib_i,$slib_j isin $(slib_path$slib_k) or $slib_j,$slib_i isin $(slib_path$slib_k) |
||
78 | slib_couleur=$(slib_path_color$slib_k) |
||
79 | !break |
||
80 | !endif |
||
81 | !next slib_k |
||
82 | !if $slib_i<>$slib_j |
||
83 | slib_dessin=$slib_dessin\ |
||
8560 | bpr | 84 | segment $(slib_COS$slib_i),$(slib_SIN$slib_i),$(slib_COS$slib_j),$(slib_SIN$slib_j),$slib_couleur |
12769 | bpr | 85 | !if weight iswordof $slib_option |
86 | slib_dessin=$slib_dessin\ |
||
87 | text black, $[(2*$(slib_COS$slib_i)+$(slib_COS$slib_j))/3],$[(2*$(slib_SIN$slib_i)+$(slib_SIN$slib_j))/3],medium,$(slib_GG[$slib_i;$slib_j]) |
||
88 | !endif |
||
12676 | bpr | 89 | !else |
90 | slib_dessin=$slib_dessin\ |
||
20 | reyssat | 91 | ellipse $[$(slib_COS$slib_i)*1.25],$[$(slib_SIN$slib_i)*1.25], 0.5,0.5,$slib_couleur |
12676 | bpr | 92 | !endif |
93 | !endif |
||
94 | !next slib_j |
||
95 | !else |
||
96 | !for slib_j=1 to $slib_n |
||
97 | slib_r=!line $slib_i of $slib_G |
||
98 | slib_u=!item $slib_j of $slib_r |
||
12769 | bpr | 99 | !if $slib_u>0 |
12676 | bpr | 100 | slib_couleur=$slib_color2 |
101 | !for slib_k=1 to $slib_cnt_path |
||
102 | !if $slib_i,$slib_j isin $(slib_path$slib_k) or $slib_j,$slib_i isin $(slib_path$slib_k) |
||
103 | slib_couleur=$(slib_path_color$slib_k) |
||
104 | !break |
||
105 | !endif |
||
106 | !next slib_k |
||
107 | !if $slib_i<>$slib_j |
||
108 | slib_dessin=$slib_dessin\ |
||
20 | reyssat | 109 | arrow $(slib_COS$slib_i),$(slib_SIN$slib_i), $[($(slib_COS$slib_i)-$(slib_COS$slib_j))/2+$(slib_COS$slib_j)],$[($(slib_SIN$slib_i)-$(slib_SIN$slib_j))/2+$(slib_SIN$slib_j)],10,$slib_color2\ |
8584 | bpr | 110 | segment $(slib_COS$slib_i),$(slib_SIN$slib_i),$[$(slib_COS$slib_j)],$(slib_SIN$slib_j),$slib_couleur |
12676 | bpr | 111 | !else |
112 | slib_dessin=$slib_dessin\ |
||
20 | reyssat | 113 | ellipse $[$(slib_COS$slib_i)*1.25],$[$(slib_SIN$slib_i)*1.25], 0.5,0.5,$slib_couleur |
12676 | bpr | 114 | !endif |
115 | !endif |
||
116 | !next slib_j |
||
117 | !endif |
||
7692 | bpr | 118 | !next slib_i |
20 | reyssat | 119 | |
120 | slib_out= $slib_dessin |
||
121 | |||
4172 | bpr | 122 | !if url iswordof $slib_option or html iswordof $slib_option |
123 | insdraw_size=250,250 |
||
124 | !insdraw $slib_out |
||
125 | slib_out=$ins_url |
||
12676 | bpr | 126 | !if html iswordof $slib_option |
17173 | bpr | 127 | slib_out=<img src="$ins_url" alt=""> |
12676 | bpr | 128 | !else |
4908 | bpr | 129 | slib_out=$slib_out,$insdraw_size |
12676 | bpr | 130 | !endif |
4172 | bpr | 131 | !endif |