Rev 6557 | Rev 8321 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6557 | Rev 7692 | ||
---|---|---|---|
Line 3... | Line 3... | ||
3 | !endif |
3 | !endif |
4 | slib_author=Bernadette, Perrin-Riou |
4 | slib_author=Bernadette, Perrin-Riou |
5 | 5 | ||
6 | slib_example=[1,2,3;2,4,5;3,6,7],[[A,B,C],[a,b,c]],middle point\ |
6 | slib_example=[1,2,3;2,4,5;3,6,7],[[A,B,C],[a,b,c]],middle point\ |
7 | [1,2,3;2,4,5;3,6,7],[[A,B,C],[a,b,c]],middle point html |
7 | [1,2,3;2,4,5;3,6,7],[[A,B,C],[a,b,c]],middle point html |
8 | 8 | ||
9 | !exit |
9 | !exit |
10 | 10 | ||
11 | :proc |
11 | :proc |
12 | 12 | ||
13 | 13 | ||
Line 46... | Line 46... | ||
46 | slib_cnt1 = 0 |
46 | slib_cnt1 = 0 |
47 | slib_cnt=1 |
47 | slib_cnt=1 |
48 | slib_width1 =15 |
48 | slib_width1 =15 |
49 | slib_Sizey=0 |
49 | slib_Sizey=0 |
50 | slib_position =$empty |
50 | slib_position =$empty |
51 | 51 | ||
52 | slib_milieu =0,-1 |
52 | slib_milieu =0,-1 |
53 | !for slib_k = 1 to $slib_n |
53 | !for slib_k = 1 to $slib_n |
54 | slib_L = !line $slib_k of $slib_G |
54 | slib_L = !line $slib_k of $slib_G |
55 | slib_i=!item 1 of $slib_L |
55 | slib_i=!item 1 of $slib_L |
56 | slib_position_prov=$(slib_A$slib_i),$[-$(slib_height$slib_i)] |
56 | slib_position_prov=$(slib_A$slib_i),$[-$(slib_height$slib_i)] |
57 | slib_position = !append line $slib_position_prov to $slib_position |
57 | slib_position = !append line $slib_position_prov to $slib_position |
58 | slib_a=!item 2 to -1 of $slib_L |
58 | slib_a=!item 2 to -1 of $slib_L |
59 | slib_ss=!itemcnt $slib_L |
59 | slib_ss=!itemcnt $slib_L |
60 | !for slib_b in $slib_a |
60 | !for slib_b in $slib_a |
61 | slib_j=!positionof $slib_b in $slib_a |
61 | slib_j=!positionof $slib_b in $slib_a |
62 | !if $slib_b <> 0 and $slib_b<>$empty |
62 | !if $slib_b <> 0 and $slib_b<>$empty |
63 | slib_jj =$[$slib_cnt+1] |
63 | slib_jj =$[$slib_cnt+1] |
64 | #sa hauteur |
64 | #sa hauteur |
65 | slib_height$slib_jj= $[$(slib_height$slib_i)+1] |
65 | slib_height$slib_jj= $[$(slib_height$slib_i)+1] |
66 | #la hauteur de l'arbre |
66 | #la hauteur de l'arbre |
67 | slib_sizey=$[max($slib_sizey, $(slib_height$slib_jj))] |
67 | slib_sizey=$[max($slib_sizey, $(slib_height$slib_jj))] |
68 | # Ne sert à rien ? |
68 | # Ne sert à rien ? |
69 | slib_cnt$(slib_height$slib_jj)=$[$(slib_cnt$(slib_height$slib_jj))+1] |
69 | slib_cnt$(slib_height$slib_jj)=$[$(slib_cnt$(slib_height$slib_jj))+1] |
70 | #nombre de sommets |
70 | #nombre de sommets |
71 | slib_cnt = $[$slib_cnt +1] |
71 | slib_cnt = $[$slib_cnt +1] |
72 | #position |
72 | #position |
73 | slib_test=$[($slib_ss)%2] |
73 | slib_test=$[($slib_ss)%2] |
74 | !ifval $slib_test =1 |
74 | !ifval $slib_test =1 |
75 | slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2)*$(slib_width$slib_i)] |
75 | slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2)*$(slib_width$slib_i)] |
76 | !else |
76 | !else |
77 | slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2-1)*$(slib_width$slib_i)] |
77 | slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2-1)*$(slib_width$slib_i)] |
78 | !endif |
78 | !endif |
79 | #calcul de la largeur donnée au sommet $slib_jj pour ses fils éventuels |
79 | #calcul de la largeur donnée au sommet $slib_jj pour ses fils éventuels |
80 | slib_width$slib_jj=$[$(slib_width$slib_i)/($slib_ss-0.5)] |
80 | slib_width$slib_jj=$[$(slib_width$slib_i)/($slib_ss-0.5)] |
81 | slib_milieu_prov=$[($(slib_A$slib_i)+2*$(slib_A$slib_jj))/3],$[-($(slib_height$slib_i) +2*$(slib_height$slib_jj))/3] |
81 | slib_milieu_prov=$[($(slib_A$slib_i)+2*$(slib_A$slib_jj))/3],$[-($(slib_height$slib_i) +2*$(slib_height$slib_jj))/3] |
82 | slib_milieu = !append line $slib_milieu_prov to $slib_milieu |
82 | slib_milieu = !append line $slib_milieu_prov to $slib_milieu |
83 | !endif |
83 | !endif |
84 | !next slib_b |
84 | !next slib_b |
85 | !next slib_k |
85 | !next slib_k |
86 | slib_s=!line -1 of $slib_position |
86 | slib_s=!line -1 of $slib_position |
87 | slib_s = !item 1 of $slib_s |
87 | slib_s = !item 1 of $slib_s |
88 | 88 | ||
89 | #Trace du dessin |
89 | #Trace du dessin |
90 | slib_dessin =xrange $[-($slib_s)-5], $[$slib_s+5]\ |
90 | slib_dessin =xrange $[-($slib_s)-5], $[$slib_s+5]\ |
91 | yrange $[-($slib_sizey)-0.5],-0.5\ |
91 | yrange $[-($slib_sizey)-0.5],-0.5\ |
92 | linewidth 2 |
92 | linewidth 2 |
93 | slib_cnt =!linecnt $slib_G |
93 | slib_cnt =!linecnt $slib_G |
94 | !for slib_k= 1 to $slib_cnt |
94 | !for slib_k= 1 to $slib_cnt |
95 | slib_u =!line $slib_k of $slib_G |
95 | slib_u =!line $slib_k of $slib_G |
96 | slib_i=!item 1 of $slib_u |
96 | slib_i=!item 1 of $slib_u |
97 | slib_u=!item 2 to -1 of $slib_u |
97 | slib_u=!item 2 to -1 of $slib_u |
98 | slib_position_prov=!line $slib_k of $slib_position |
98 | slib_position_prov=!line $slib_k of $slib_position |
99 | !for slib_j in $slib_u |
99 | !for slib_j in $slib_u |
100 | !if $slib_j notsametext sentinelle |
100 | !if $slib_j notsametext sentinelle |
101 | #trace de la droite |
101 | #trace de la droite |
102 | slib_position_prov1=!line $slib_j of $slib_position |
102 | slib_position_prov1=!line $slib_j of $slib_position |
103 | slib_dessin = !append line line $slib_position_prov,$slib_position_prov1, $slib_color1\ |
103 | slib_dessin = !append line line $slib_position_prov,$slib_position_prov1, $slib_color1\ |
104 | to $slib_dessin |
104 | to $slib_dessin |
105 | #on coupe les segments au milieu pour mettre un cercle et éventuellement du texte |
105 | #on coupe les segments au milieu pour mettre un cercle et éventuellement du texte |
106 | 106 | ||
107 | !if middle iswordof $slib_doption |
107 | !if middle iswordof $slib_doption |
108 | slib_milieu_prov=!line $slib_j of $slib_milieu |
108 | slib_milieu_prov=!line $slib_j of $slib_milieu |
109 | slib_dessin = !append line disk $slib_milieu_prov,30,white\ |
109 | slib_dessin = !append line disk $slib_milieu_prov,30,white\ |
110 | circle $slib_milieu_prov, 30,$slib_color3 to $slib_dessin |
110 | circle $slib_milieu_prov, 30,$slib_color3 to $slib_dessin |
111 | !if $slib_textm <> $empty |
111 | !if $slib_textm <> $empty |
Line 114... | Line 114... | ||
114 | slib_milieu_prov2=!item 2 of $slib_milieu_prov |
114 | slib_milieu_prov2=!item 2 of $slib_milieu_prov |
115 | slib_milieu_prov=$[$slib_milieu_prov1-0.9], $[$slib_milieu_prov2+0.1] |
115 | slib_milieu_prov=$[$slib_milieu_prov1-0.9], $[$slib_milieu_prov2+0.1] |
116 | slib_dessin =!append line text black,$slib_milieu_prov, medium,$slib_textk to $slib_dessin |
116 | slib_dessin =!append line text black,$slib_milieu_prov, medium,$slib_textk to $slib_dessin |
117 | !endif |
117 | !endif |
118 | !endif |
118 | !endif |
119 | 119 | ||
120 | !endif |
120 | !endif |
121 | !next slib_j |
121 | !next slib_j |
122 | !if point iswordof $slib_doption |
122 | !if point iswordof $slib_doption |
123 | slib_dessin =!append line disk $slib_position_prov,30,white\ |
123 | slib_dessin =!append line disk $slib_position_prov,30,white\ |
124 | circle $slib_position_prov,30,$slib_color2 to $slib_dessin |
124 | circle $slib_position_prov,30,$slib_color2 to $slib_dessin |
125 | !endif |
125 | !endif |
126 | !if $slib_textp <> $empty |
126 | !if $slib_textp <> $empty |
127 | slib_textk=!item $slib_k of $slib_textp |
127 | slib_textk=!item $slib_k of $slib_textp |
128 | slib_position_prov1=!item 1 of $slib_position_prov |
128 | slib_position_prov1=!item 1 of $slib_position_prov |
129 | slib_position_prov2=!item 2 of $slib_position_prov |
129 | slib_position_prov2=!item 2 of $slib_position_prov |
130 | slib_position_prov=$[$slib_position_prov1-0.9], $[$slib_position_prov2+0.1] |
130 | slib_position_prov=$[$slib_position_prov1-0.9], $[$slib_position_prov2+0.1] |
131 | slib_dessin =!append line text black,$slib_position_prov, medium,$slib_textk to $slib_dessin |
131 | slib_dessin =!append line text black,$slib_position_prov, medium,$slib_textk to $slib_dessin |
132 | !endif |
132 | !endif |
133 | 133 | ||
134 | !next slib_k |
134 | !next slib_k |
135 | 135 | ||
136 | slib_out = $slib_dessin |
136 | slib_out = $slib_dessin |
137 | !if url iswordof $slib_doption or html iswordof $slib_doption |
137 | !if url iswordof $slib_doption or html iswordof $slib_doption |
138 | insdraw_size=300,300 |
138 | insdraw_size=300,300 |
139 | !insdraw $slib_out |
139 | !insdraw $slib_out |