Rev 11852 | Rev 13587 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 11852 | Rev 12676 | ||
---|---|---|---|
Line 21... | Line 21... | ||
21 | !default slib_color2=green |
21 | !default slib_color2=green |
22 | !!default slib_text= !values x for x=1 to $slib_n |
22 | !!default slib_text= !values x for x=1 to $slib_n |
23 | 23 | ||
24 | slib_text=!declosing $slib_text |
24 | slib_text=!declosing $slib_text |
25 | !if [ isin $slib_s |
25 | !if [ isin $slib_s |
26 | slib_G=!declosing $slib_s |
26 | slib_G=!declosing $slib_s |
27 | !else |
27 | !else |
28 | 28 | ||
29 | slib_liste= |
29 | slib_liste= |
30 | !for slib_i = 1 to $slib_n |
30 | !for slib_i = 1 to $slib_n |
31 |
|
31 | slib_liste1=!values 1 for x=1 to $slib_s |
32 |
|
32 | slib_liste0=!values 0 for x=1 to $[$slib_n-$slib_i-$slib_s] |
33 |
|
33 | slib_liste2=!shuffle $slib_liste1,$slib_liste0 |
34 |
|
34 | slib_liste2=1,$slib_liste2 |
35 |
|
35 | slib_liste2=!item 1 to $[$slib_n-$slib_i+1] of $slib_liste2 |
36 |
|
36 | slib_liste=!append item $slib_liste2 to $slib_liste |
37 | !next slib_i |
37 | !next slib_i |
38 | slib_liste=!nonempty items $slib_liste |
38 | slib_liste=!nonempty items $slib_liste |
39 | slib_G= !exec pari slib_n =$slib_n;slib_liste =[$slib_liste];slib_M=matrix(slib_n,slib_n,slib_i,slib_j, if(slib_i < slib_j,slib_liste[slib_n*(slib_n-1)/2-(slib_n-slib_i+1)*(slib_n-slib_i)/2 +slib_j-slib_i]));for(slib_i = 2,slib_n-1,if(slib_M[,slib_i]==0,slib_M[1,slib_i]=1);if(slib_M[slib_i,]==0,slib_M[slib_i,slib_n]=1));slib_M[1,slib_n]=0; slib_M |
39 | slib_G= !exec pari slib_n =$slib_n;slib_liste =[$slib_liste];slib_M=matrix(slib_n,slib_n,slib_i,slib_j, if(slib_i < slib_j,slib_liste[slib_n*(slib_n-1)/2-(slib_n-slib_i+1)*(slib_n-slib_i)/2 +slib_j-slib_i]));for(slib_i = 2,slib_n-1,if(slib_M[,slib_i]==0,slib_M[1,slib_i]=1);if(slib_M[slib_i,]==0,slib_M[slib_i,slib_n]=1));slib_M[1,slib_n]=0; slib_M |
40 | 40 | ||
41 | !endif |
41 | !endif |
Line 58... | Line 58... | ||
58 | $ in $slib_position |
58 | $ in $slib_position |
59 | slib_niveau1=!translate internal ; to $\ |
59 | slib_niveau1=!translate internal ; to $\ |
60 | $ in $slib_niveau |
60 | $ in $slib_niveau |
61 | slib_sign=1 |
61 | slib_sign=1 |
62 | !for slib_i=1 to $slib_height |
62 | !for slib_i=1 to $slib_height |
63 |
|
63 | slib_eps1=!item $slib_i of $slib_eps |
64 |
|
64 | slib_ligne= !line $slib_i of $slib_niveau1 |
65 |
|
65 | slib_test=0 |
66 |
|
66 | slib_total =!replace internal , by + in $slib_ligne |
67 |
|
67 | slib_total=$[$slib_total] |
68 |
|
68 | !if $slib_total=1 |
69 |
|
69 | slib_sign=$[-$slib_sign] |
70 |
|
70 | !endif |
71 | 71 | ||
72 |
|
72 | slib_dist= $[round($slib_width/$slib_total)] |
73 |
|
73 | !for slib_j = 1 to $slib_n |
74 |
|
74 | slib_pt=!item $slib_j of $slib_ligne |
75 |
|
75 | !if $slib_pt <>0 |
76 |
|
76 | !advance slib_test |
77 |
|
77 | slib_bb=!item $[($slib_test)*$slib_dist] of $slib_listeb |
78 |
|
78 | slib_position=!replace internal line number $slib_j by $[$slib_i-1], $[$slib_sign*$slib_bb*$slib_i*($slib_height -$slib_i)] in $slib_position |
79 |
|
79 | !endif |
80 |
|
80 | !next slib_j |
81 | !next slib_i |
81 | !next slib_i |
82 | #dessin |
82 | #dessin |
83 | #################### |
83 | #################### |
84 | slib_yrange1= $[-$slib_height^2/8-0.5] |
84 | slib_yrange1= $[-$slib_height^2/8-0.5] |
85 | slib_yrange2=$[$slib_height^2/8+0.5] |
85 | slib_yrange2=$[$slib_height^2/8+0.5] |
86 | slib_dessin = xrange -0.5, $[$slib_height]\ |
86 | slib_dessin = xrange -0.5, $[$slib_height]\ |
87 | yrange $slib_yrange1, $slib_yrange2\ |
87 | yrange $slib_yrange1, $slib_yrange2\ |
88 | parallel -0.5,$slib_yrange1,-0.5,$slib_yrange2,1,0, $[$slib_height+2],yellow |
88 | parallel -0.5,$slib_yrange1,-0.5,$slib_yrange2,1,0, $[$slib_height+2],yellow |
89 | #################### |
89 | #################### |
90 | 90 | ||
91 | !for slib_i = 0 to $[floor($slib_height/2+2)] |
91 | !for slib_i = 0 to $[floor($slib_height/2+2)] |
92 |
|
92 | slib_dessin=!append line pointfill 2*$slib_i,0,3,3,yellow to $slib_dessin |
93 | !next slib_i |
93 | !next slib_i |
94 | # laisser en premier les lignes correspondant aux sommets |
94 | # laisser en premier les lignes correspondant aux sommets |
95 | !for slib_i = 1 to $slib_n |
95 | !for slib_i = 1 to $slib_n |
96 |
|
96 | slib_point=!line $slib_i of $slib_position |
97 |
|
97 | slib_dessin =!append line disk $slib_point, 6, $slib_color2 to $slib_dessin |
98 |
|
98 | !for slib_j = $slib_i to $slib_n |
99 |
|
99 | slib_ligne=!line $slib_i of $slib_GG |
100 |
|
100 | slib_test=!item $slib_j of $slib_ligne |
101 |
|
101 | !if $slib_test <> 0 |
102 |
|
102 | slib_point1=!line $slib_j of $slib_position |
103 |
|
103 | slib_interm= !exec pari ([$slib_point]+2*[$slib_point1])/3 |
104 |
|
104 | slib_dessin = !append line segment $slib_point, $slib_point1, $slib_color1 to $slib_dessin |
105 |
|
105 | slib_dessin = !append line arrow $slib_point, $slib_interm, 10, $slib_color1 to $slib_dessin |
106 | !endif |
- | |
107 | !next slib_j |
- | |
108 | !if $slib_text<>$empty |
- | |
109 | slib_texti=!item $slib_i of $slib_text |
- | |
110 | slib_dessin=!append line text black,$slib_point, medium, $slib_texti to $slib_dessin |
- | |
111 | !endif |
106 | !endif |
- | 107 | !next slib_j |
|
- | 108 | !if $slib_text<>$empty |
|
- | 109 | slib_texti=!item $slib_i of $slib_text |
|
- | 110 | slib_dessin=!append line text black,$slib_point, medium, $slib_texti to $slib_dessin |
|
- | 111 | !endif |
|
112 | !next slib_i |
112 | !next slib_i |
113 | 113 | ||
114 | slib_out = $slib_dessin |
114 | slib_out = $slib_dessin |
115 | !if url iswordof $slib_option or html iswordof $slib_option |
115 | !if url iswordof $slib_option or html iswordof $slib_option |
116 | insdraw_size=450,250 |
116 | insdraw_size=450,250 |
117 | !insdraw $slib_out |
117 | !insdraw $slib_out |
118 | slib_out=$ins_url |
118 | slib_out=$ins_url |
119 | !if html iswordof $slib_option |
119 | !if html iswordof $slib_option |
120 | slib_out=<img src="$ins_url" alt=""/> |
120 | slib_out=<img src="$ins_url" alt=""/> |
121 | !else |
121 | !else |
122 | slib_out=$slib_out,[$slib_G],[$slib_niveau], [$slib_position],$insdraw_size |
122 | slib_out=$slib_out,[$slib_G],[$slib_niveau], [$slib_position],$insdraw_size |
123 | !endif |
123 | !endif |
124 |
|
124 | !else |
125 |
|
125 | slib_out=$slib_dessin,[$slib_G],[$slib_niveau], [$slib_position] |
126 | !endif |
126 | !endif |