File: drawcc

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 (131 lines) | stat: -rw-r--r-- 4,777 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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
!if  $wims_read_parm!=slib_header
  !goto proc
!endif

slib_author=Bernadette, Perrin-Riou

slib_example=[0,0,0;0,0,1;0,1,0],[blue,red],[A,B,C],2,html\
 [0,0,0;0,0,1;0,1,0],[red,blue],[A,B,C],2,html\
  [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\
  [0,0,0;0,0,1;0,1,0],[blue,red],[A,B,C],2,raw
slib_require=pari
!exit

:proc

!reset slib_names slib_point slib_matrix slib_list \
  slib_color1 slib_color2 slib_color3 slib_color4 slib_color5 slib_color6 slib_color7
!reset slib_option

slib_parm=!item 1 to 3 of $wims_read_parm
!distribute item $slib_parm into slib_H, slib_color,slib_names
slib_point=!item 4 to -1 of $wims_read_parm
!if $(slib_point[-1]) iswordof url html raw
  slib_option=$(slib_point[-1])
  slib_point=$(slib_point[1..-2])
  slib_point=!declosing $slib_point
!endif
slib_H=!declosing $slib_H
slib_H=!translate internal  ;  to $\
$ in $slib_H
slib_HH=!translate internal $\
$ to ; in $slib_H

slib_point=!declosing $slib_point
slib_color=!declosing $slib_color
!distribute items $slib_color into slib_color1, slib_color2, slib_color3, slib_color4, slib_color5, slib_color6,slib_color7
slib_colordef=blue,red,green, magenta, brown, purple,gold
!for slib_i=1 to 7
  !default slib_color$slib_i=$(slib_colordef[$slib_i])
  !reset slib_segments$slib_i slib_ellipses$slib_i
!next
slib_or=!exec pari Mat([$slib_HH])==Mat([$slib_HH])~
slib_names=!declosing $slib_names
slib_n=!line 1 of $slib_H
slib_n=!itemcnt $slib_n
!default slib_names=!values slib_i for slib_i=1 to $slib_n
slib_vertex=!values x for x=1 to $slib_n
!default slib_point=$slib_vertex
!reset slib_liste slib_matrix slib_out
slib_cnt=0
!for slib_i in $slib_point
  !if $slib_i notin $slib_liste
    !read slib/graph/connexcomponent [$slib_HH], $slib_i
    slib_liste=!append item $slib_out to $slib_liste
    slib_matrix=!append line $slib_out to $slib_matrix
    !advance slib_cnt
    slib_out=
  !endif
!next slib_i
slib_point2=!listcomplement of $slib_liste in $slib_vertex
!for slib_i in $slib_point2
  !if $slib_i notin $slib_liste
    !read slib/graph/connexcomponent [$slib_HH], $slib_i
    slib_liste=!append item $slib_out to $slib_liste
    slib_matrix=!append line $slib_out to $slib_matrix
    !advance slib_cnt
  !endif
!next slib_i

slib_dessin=xrange -1.5,1.5\
yrange -1.5,1.5
!for slib_i=1 to $slib_cnt
  slib_color$slib_i=!declosing $(slib_color$slib_i)
  slib_h=!line $slib_i of $slib_matrix
  !for slib_k in $slib_h
    slib_name=!item $slib_k of $slib_names
    slib_dessin=$slib_dessin\
disk cos(2*pi*$slib_k/$slib_n),sin(2*pi*$slib_k/$slib_n ),6,$(slib_color$slib_i)\
text black, 1.3*cos(2*pi*$slib_k/$slib_n ),1.3*sin(2*pi*$slib_k/$slib_n ), medium ,$slib_name
    slib_r=!line $slib_k of $slib_H
    !if $slib_or=1
      !for slib_j in $slib_h
        slib_u=!item $slib_j of $slib_r
        !if $slib_u=1
          !if $slib_k<>$slib_j
            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)
          !else
            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 \
              to $(slib_ellipses$slib_i)
          !endif
        !endif
      !next slib_j
    !else
      !for slib_j=1 to $slib_n
        slib_u=!item $slib_j of $slib_r
        !if $slib_u=1
          !if $slib_k<>$slib_j
            slib_dessin=$slib_dessin\
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)
            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)
          !else
            !if $(slib_r[$slib_j])!=0
              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 \
                to $(slib_ellipses$slib_i))
            !endif
          !endif
        !endif
      !next slib_j
    !endif
  !next slib_k
  !if $(slib_segments$slib_i)!=
    slib_dessin=$slib_dessin\
segments $(slib_color$slib_i), $(slib_segments$slib_i)
  !endif
  !if $(slib_ellipses$slib_i)!=
    slib_dessin=$slib_dessin\
ellipses $(slib_color$slib_i), $(slib_ellipses$slib_i)
  !endif
!next slib_i

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