Rev 17954 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 17954 | Rev 17963 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | !goto proc |
2 | !goto proc |
3 | !endif |
3 | !endif |
4 | 4 | ||
5 | slib_author=Bernadette, Perrin-Riou |
5 | slib_author=Bernadette, Perrin-Riou |
6 | 6 | ||
7 | slib_example= |
7 | slib_example=[0,0,0;0,0,1;0,1,0],[blue,red],[A,B,C],2,html\ |
8 | [0,0,0;0,0,1;0,1,0],[ |
8 | [0,0,0;0,0,1;0,1,0],[red,blue],[A,B,C],2,html\ |
- | 9 | [1,1,0,0,0,0;1,0,0,0,0,0;0,0,0,1,1,0;0,0,1,0,1,0;0,0,1,1,0,0;0,0,0,0,0,1],,[A,B,C],[1,6],html\ |
|
9 | [0,0,0;0,0,1;0,1,0 |
10 | [0,0,0;0,0,1;0,1,0],[blue,red],[A,B,C],2,raw |
10 | slib_require=pari |
11 | slib_require=pari |
11 | !exit |
12 | !exit |
12 | 13 | ||
13 | :proc |
14 | :proc |
14 | 15 | ||
15 | !reset |
16 | !reset slib_names slib_point slib_matrix slib_list \ |
- | 17 | slib_color1 slib_color2 slib_color3 slib_color4 slib_color5 slib_color6 slib_color7 |
|
- | 18 | !reset slib_option |
|
16 | 19 | ||
17 | slib_parm=!item 1 to 3 of $wims_read_parm |
20 | slib_parm=!item 1 to 3 of $wims_read_parm |
18 | !distribute item $slib_parm into slib_H, slib_color,slib_names |
21 | !distribute item $slib_parm into slib_H, slib_color,slib_names |
19 | slib_point=!item 4 to -1 of $wims_read_parm |
22 | slib_point=!item 4 to -1 of $wims_read_parm |
20 | !if $(slib_point[-1]) iswordof url html raw |
23 | !if $(slib_point[-1]) iswordof url html raw |
21 | slib_option=$(slib_point[-1]) |
24 | slib_option=$(slib_point[-1]) |
22 | slib_point=$(slib_point[1..-2]) |
25 | slib_point=$(slib_point[1..-2]) |
- | 26 | slib_point=!declosing $slib_point |
|
23 | !endif |
27 | !endif |
24 | slib_H=!declosing $slib_H |
28 | slib_H=!declosing $slib_H |
25 | slib_H=!translate internal ; to $\ |
29 | slib_H=!translate internal ; to $\ |
26 | $ in $slib_H |
30 | $ in $slib_H |
27 | slib_HH=!translate internal $\ |
31 | slib_HH=!translate internal $\ |
28 | $ to ; in $slib_H |
32 | $ to ; in $slib_H |
29 | 33 | ||
30 | slib_point=!declosing $slib_point |
34 | slib_point=!declosing $slib_point |
31 | slib_color=!declosing $slib_color |
35 | slib_color=!declosing $slib_color |
32 | !default slib_color=blue,red,green, magenta, brown, purple,gold |
- | |
33 | !distribute items $slib_color into slib_color1, slib_color2, slib_color3, slib_color4, slib_color5, slib_color6,slib_color7 |
36 | !distribute items $slib_color into slib_color1, slib_color2, slib_color3, slib_color4, slib_color5, slib_color6,slib_color7 |
- | 37 | slib_colordef=blue,red,green, magenta, brown, purple,gold |
|
34 | !for |
38 | !for slib_i=1 to 7 |
- | 39 | !default slib_color$slib_i=$(slib_colordef[$slib_i]) |
|
35 | !reset slib_segments$slib_i |
40 | !reset slib_segments$slib_i slib_ellipses$slib_i |
36 | !next |
41 | !next |
37 | slib_or=!exec pari Mat([$slib_HH])==Mat([$slib_HH])~ |
42 | slib_or=!exec pari Mat([$slib_HH])==Mat([$slib_HH])~ |
38 | slib_names=!declosing $slib_names |
43 | slib_names=!declosing $slib_names |
39 | slib_n=!line 1 of $slib_H |
44 | slib_n=!line 1 of $slib_H |
40 | slib_n=!itemcnt $slib_n |
45 | slib_n=!itemcnt $slib_n |
41 | !default slib_names=!values slib_i for slib_i=1 to $slib_n |
46 | !default slib_names=!values slib_i for slib_i=1 to $slib_n |
42 |
|
47 | slib_vertex=!values x for x=1 to $slib_n |
43 | !default |
48 | !default slib_point=$slib_vertex |
44 | slib_liste |
49 | !reset slib_liste slib_matrix slib_out |
45 |
|
50 | slib_cnt=0 |
46 | slib_matrix= |
- | |
47 | slib_out= |
- | |
48 | !for slib_i in $slib_point |
51 | !for slib_i in $slib_point |
49 | !if $slib_i notin $slib_liste |
52 | !if $slib_i notin $slib_liste |
50 | !read slib/graph/connexcomponent [$slib_HH], $slib_i |
53 | !read slib/graph/connexcomponent [$slib_HH], $slib_i |
51 |
|
54 | slib_liste=!append item $slib_out to $slib_liste |
52 |
|
55 | slib_matrix=!append line $slib_out to $slib_matrix |
53 | !advance slib_cnt |
56 | !advance slib_cnt |
54 | slib_out= |
57 | slib_out= |
55 | !endif |
58 | !endif |
56 | !next slib_i |
59 | !next slib_i |
57 |
|
60 | slib_point2=!listcomplement of $slib_liste in $slib_vertex |
58 | - | ||
59 | !for slib_i in $slib_point2 |
61 | !for slib_i in $slib_point2 |
60 | !if $slib_i notin $slib_liste |
62 | !if $slib_i notin $slib_liste |
61 | !read slib/graph/connexcomponent [$slib_HH], $slib_i |
63 | !read slib/graph/connexcomponent [$slib_HH], $slib_i |
62 |
|
64 | slib_liste=!append item $slib_out to $slib_liste |
63 |
|
65 | slib_matrix=!append line $slib_out to $slib_matrix |
64 | !advance slib_cnt |
66 | !advance slib_cnt |
65 | !endif |
67 | !endif |
66 | !next slib_i |
68 | !next slib_i |
67 | 69 | ||
68 |
|
70 | slib_dessin=xrange -1.5,1.5\ |
69 | yrange -1.5,1.5 |
71 | yrange -1.5,1.5 |
70 | !for slib_i=1 to $slib_cnt |
72 | !for slib_i=1 to $slib_cnt |
71 |
|
73 | slib_color$slib_i=!declosing $(slib_color$slib_i) |
72 | slib_h=!line $slib_i of $slib_matrix |
74 | slib_h=!line $slib_i of $slib_matrix |
73 | !for slib_k in $slib_h |
75 | !for slib_k in $slib_h |
74 |
|
76 | slib_name=!item $slib_k of $slib_names |
75 | slib_dessin=$slib_dessin\ |
77 | slib_dessin=$slib_dessin\ |
76 | disk cos(2*pi*$slib_k/$slib_n |
78 | disk cos(2*pi*$slib_k/$slib_n),sin(2*pi*$slib_k/$slib_n ),6,$(slib_color$slib_i)\ |
77 | text black, 1.3*cos(2*pi*$slib_k/$slib_n ),1.3*sin(2*pi*$slib_k/$slib_n ), medium ,$slib_name |
79 | text black, 1.3*cos(2*pi*$slib_k/$slib_n ),1.3*sin(2*pi*$slib_k/$slib_n ), medium ,$slib_name |
78 | slib_r=!line $slib_k of $slib_H |
80 | slib_r=!line $slib_k of $slib_H |
79 | !if $slib_or=1 |
81 | !if $slib_or=1 |
80 | !for slib_j |
82 | !for slib_j in $slib_h |
81 | slib_u=!item $slib_j of $slib_r |
83 | slib_u=!item $slib_j of $slib_r |
82 | !if $slib_u=1 |
84 | !if $slib_u=1 |
83 | !if $slib_k<>$slib_j |
85 | !if $slib_k<>$slib_j |
84 | slib_segments$slib_i=!append item cos(2*pi*$slib_k/$slib_n),sin(2*pi*$slib_k/$slib_n), cos(2*pi*$slib_j/$slib_n ),sin(2*pi*$slib_j/$slib_n) to $(slib_segments$slib_i) |
86 | slib_segments$slib_i=!append item cos(2*pi*$slib_k/$slib_n),sin(2*pi*$slib_k/$slib_n), cos(2*pi*$slib_j/$slib_n ),sin(2*pi*$slib_j/$slib_n) to $(slib_segments$slib_i) |
85 | !else |
87 | !else |
- | 88 | slib_ellipses$slib_i=!append item cos(2*pi*$slib_j/$slib_n )*1.25,sin(2*pi*$slib_j/$slib_n)*1.25, 0.5,0.5 \ |
|
86 |
|
89 | to $(slib_ellipses$slib_i) |
87 |
|
90 | !endif |
88 | !endif |
91 | !endif |
89 | !endif |
92 | !endif |
90 | !next slib_j |
93 | !next slib_j |
91 | !else |
94 | !else |
92 | !for slib_j=1 to $slib_n |
95 | !for slib_j=1 to $slib_n |
93 | slib_r=!line $slib_k of $slib_H |
- | |
94 | slib_u=!item $slib_j of $slib_r |
96 | slib_u=!item $slib_j of $slib_r |
95 | !if $slib_u=1 |
97 | !if $slib_u=1 |
96 | !if $slib_k<>$slib_j |
98 | !if $slib_k<>$slib_j |
97 | slib_dessin=$slib_dessin\ |
99 | slib_dessin=$slib_dessin\ |
98 | arrow $[cos(2*pi*$slib_k/$slib_n )],$[sin(2*pi*$slib_k/$slib_n)], $[(cos(2*pi*$slib_k/$slib_n )-cos(2*pi*$slib_j/$slib_n ))/2+cos(2*pi*$slib_j/$slib_n )],$[(sin(2*pi*$slib_k/$slib_n )-sin(2*pi*$slib_j/$slib_n ))/2+sin(2*pi*$slib_j/$slib_n )],10,$(slib_color$slib_i) |
100 | arrow $[cos(2*pi*$slib_k/$slib_n )],$[sin(2*pi*$slib_k/$slib_n)], $[(cos(2*pi*$slib_k/$slib_n )-cos(2*pi*$slib_j/$slib_n ))/2+cos(2*pi*$slib_j/$slib_n )],$[(sin(2*pi*$slib_k/$slib_n )-sin(2*pi*$slib_j/$slib_n ))/2+sin(2*pi*$slib_j/$slib_n )],10,$(slib_color$slib_i) |
99 | slib_segments$slib_i=!append item cos(2*pi*$slib_k/$slib_n ),sin(2*pi*$slib_k/$slib_n ),cos(2*pi*$slib_j/$slib_n ),sin(2*pi*$slib_j/$slib_n ) to $(slib_segments$slib_i) |
101 | slib_segments$slib_i=!append item cos(2*pi*$slib_k/$slib_n ),sin(2*pi*$slib_k/$slib_n ),cos(2*pi*$slib_j/$slib_n ),sin(2*pi*$slib_j/$slib_n ) to $(slib_segments$slib_i) |
100 | !else |
102 | !else |
101 |
|
103 | !if $(slib_r[$slib_j])!=0 |
102 |
|
104 | slib_ellipses$slib_i=!append item cos(2*pi*$slib_k/$slib_n)*1.25,sin(2*pi*$slib_k/$slib_n)*1.25, 0.5,0.5 \ |
- | 105 | to $(slib_ellipses$slib_i)) |
|
- | 106 | !endif |
|
103 | !endif |
107 | !endif |
104 | !endif |
108 | !endif |
105 | !next slib_j |
109 | !next slib_j |
106 | !endif |
110 | !endif |
107 | !next slib_k |
111 | !next slib_k |
108 | !if $(slib_segments$slib_i)!= |
112 | !if $(slib_segments$slib_i)!= |
109 | slib_dessin=$slib_dessin\ |
113 | slib_dessin=$slib_dessin\ |
110 | segments $(slib_color$slib_i), $(slib_segments$slib_i) |
114 | segments $(slib_color$slib_i), $(slib_segments$slib_i) |
- | 115 | !endif |
|
- | 116 | !if $(slib_ellipses$slib_i)!= |
|
- | 117 | slib_dessin=$slib_dessin\ |
|
- | 118 | ellipses $(slib_color$slib_i), $(slib_ellipses$slib_i) |
|
111 | !endif |
119 | !endif |
112 | !next slib_i |
120 | !next slib_i |
113 | 121 | ||
114 | slib_out=$slib_dessin |
122 | slib_out=$slib_dessin |
115 | - | ||
116 | !if url iswordof $slib_option or html iswordof $slib_option |
123 | !if url iswordof $slib_option or html iswordof $slib_option |
117 | insdraw_size=250,250 |
124 | insdraw_size=250,250 |
118 | !insdraw $slib_out |
125 | !insdraw $slib_out |
119 | slib_out=$ins_url |
126 | slib_out=$ins_url |
120 | !if html iswordof $slib_option |
127 | !if html iswordof $slib_option |