Subversion Repositories wimsdev

Rev

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= [0,0,0;0,0,1;0,1,0],[blue,red], [A,B,C],2\
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],[blue,red], [A,B,C],2,html\
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],[blue,red], [A,B,C],1,2,html
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 slib_color, slib_names, slib_point
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 slib_i in $slib_point
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
slib_vertex= !values x for x=1 to $slib_n
47
slib_vertex=!values x for x=1 to $slib_n
43
!default slib_point= $slib_vertex
48
!default slib_point=$slib_vertex
44
slib_liste =
49
!reset slib_liste slib_matrix slib_out
45
slib_cnt = 0
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
    slib_liste = !append item $slib_out to $slib_liste
54
    slib_liste=!append item $slib_out to $slib_liste
52
    slib_matrix = !append line $slib_out to $slib_matrix
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
slib_point2 = !listcomplement of $slib_liste in $slib_vertex
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
    slib_liste = !append item $slib_out to $slib_liste
64
    slib_liste=!append item $slib_out to $slib_liste
63
    slib_matrix = !append line $slib_out to $slib_matrix
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
slib_dessin = xrange -1.5,1.5\
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
  slib_color$slib_i= !declosing $(slib_color$slib_i)
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
    slib_name =!item $slib_k of $slib_names
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 ),sin(2*pi*$slib_k/$slib_n ), 6,$(slib_color$slib_i)\
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   in $slib_h
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
            slib_dessin=$slib_dessin\
89
              to $(slib_ellipses$slib_i)
87
ellipse cos(2*pi*$slib_i/$slib_n )*1.25,sin(2*pi*$slib_i/$slib_n )*1.25, 0.5,0.5,$(slib_color$slib_i)
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
            slib_dessin=$slib_dessin\
103
            !if $(slib_r[$slib_j])!=0
102
ellipse cos(2*pi*$slib_k/$slib_n )*1.25,sin(2*pi*$slib_k/$slib_n )*1.25, 0.5,0.5,$(slib_color$slib_i)
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