Subversion Repositories wimsdev

Rev

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