Rev 8560 | Rev 13587 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8560 | Rev 12676 | ||
---|---|---|---|
Line 17... | Line 17... | ||
17 | !default slib_color1=blue |
17 | !default slib_color1=blue |
18 | !default slib_color2=green |
18 | !default slib_color2=green |
19 | !default slib_color3 = yellow |
19 | !default slib_color3 = yellow |
20 | slib_text=!declosing $slib_text |
20 | slib_text=!declosing $slib_text |
21 | !if [ isin $slib_text |
21 | !if [ isin $slib_text |
22 |
|
22 | !distribute item $slib_text into slib_textp, slib_textm |
23 | !else |
23 | !else |
24 |
|
24 | slib_textp=$slib_text |
25 | !endif |
25 | !endif |
26 | slib_textp=!declosing $slib_textp |
26 | slib_textp=!declosing $slib_textp |
27 | slib_textm=!declosing $slib_textm |
27 | slib_textm=!declosing $slib_textm |
28 | slib_G=!declosing $slib_G |
28 | slib_G=!declosing $slib_G |
29 | slib_G = !translate internal ; to $\ |
29 | slib_G = !translate internal ; to $\ |
Line 33... | Line 33... | ||
33 | slib_n=!lines2items $slib_G |
33 | slib_n=!lines2items $slib_G |
34 | slib_n=!listuniq $slib_n |
34 | slib_n=!listuniq $slib_n |
35 | ## slib_n= !item -1 of $slib_n |
35 | ## slib_n= !item -1 of $slib_n |
36 | slib_complement=!listcomplement $slib_col in $slib_n |
36 | slib_complement=!listcomplement $slib_col in $slib_n |
37 | !for slib_i in $slib_complement |
37 | !for slib_i in $slib_complement |
38 |
|
38 | slib_G=!append line $slib_i to $slib_G |
39 | !next slib_i |
39 | !next slib_i |
40 | !read slib/data/columnsort 1,numeric, $slib_G |
40 | !read slib/data/columnsort 1,numeric, $slib_G |
41 | slib_G=$slib_out |
41 | slib_G=$slib_out |
42 | slib_n=!linecnt $slib_G |
42 | slib_n=!linecnt $slib_G |
43 | slib_A1 =0 |
43 | slib_A1 =0 |
Line 49... | Line 49... | ||
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 |
|
54 | slib_L = !line $slib_k of $slib_G |
55 |
|
55 | slib_i=!item 1 of $slib_L |
56 |
|
56 | slib_position_prov=$(slib_A$slib_i),$[-$(slib_height$slib_i)] |
57 |
|
57 | slib_position = !append line $slib_position_prov to $slib_position |
58 |
|
58 | slib_a=!item 2 to -1 of $slib_L |
59 |
|
59 | slib_ss=!itemcnt $slib_L |
60 |
|
60 | !for slib_b in $slib_a |
61 |
|
61 | slib_j=!positionof $slib_b in $slib_a |
62 |
|
62 | !if $slib_b <> 0 and $slib_b<>$empty |
63 |
|
63 | slib_jj =$[$slib_cnt+1] |
64 | #sa hauteur |
64 | #sa hauteur |
65 |
|
65 | slib_height$slib_jj= $[$(slib_height$slib_i)+1] |
66 | #la hauteur de l'arbre |
66 | #la hauteur de l'arbre |
67 |
|
67 | slib_sizey=$[max($slib_sizey, $(slib_height$slib_jj))] |
68 | # Ne sert à rien ? |
68 | # Ne sert à rien ? |
69 |
|
69 | slib_cnt$(slib_height$slib_jj)=$[$(slib_cnt$(slib_height$slib_jj))+1] |
70 | #nombre de sommets |
70 | #nombre de sommets |
71 |
|
71 | slib_cnt = $[$slib_cnt +1] |
72 | #position |
72 | #position |
73 |
|
73 | slib_test=$[($slib_ss)%2] |
74 |
|
74 | !ifval $slib_test =1 |
75 |
|
75 | slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2)*$(slib_width$slib_i)] |
76 |
|
76 | !else |
77 |
|
77 | slib_A$slib_jj=$[$(slib_A$slib_i)+($slib_j-($slib_ss)/2-1)*$(slib_width$slib_i)] |
78 |
|
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 |
|
80 | slib_width$slib_jj=$[$(slib_width$slib_i)/($slib_ss-0.5)] |
81 |
|
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 |
|
82 | slib_milieu = !append line $slib_milieu_prov to $slib_milieu |
83 |
|
83 | !endif |
84 |
|
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 |
|
95 | slib_u =!line $slib_k of $slib_G |
96 |
|
96 | slib_i=!item 1 of $slib_u |
97 |
|
97 | slib_u=!item 2 to -1 of $slib_u |
98 |
|
98 | slib_position_prov=!line $slib_k of $slib_position |
99 |
|
99 | !for slib_j in $slib_u |
100 |
|
100 | !if $slib_j notsametext sentinelle |
101 | #trace de la droite |
101 | #trace de la droite |
102 |
|
102 | slib_position_prov1=!line $slib_j of $slib_position |
103 |
|
103 | slib_dessin = !append line segment $slib_position_prov,$slib_position_prov1, $slib_color1\ |
104 |
|
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 |
|
107 | !if middle iswordof $slib_doption |
108 |
|
108 | slib_milieu_prov=!line $slib_j of $slib_milieu |
109 |
|
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 |
|
111 | !if $slib_textm <> $empty |
112 |
|
112 | slib_textk=!item $slib_j of $slib_textm |
113 |
|
113 | slib_milieu_prov1=!item 1 of $slib_milieu_prov |
114 |
|
114 | slib_milieu_prov2=!item 2 of $slib_milieu_prov |
115 |
|
115 | slib_milieu_prov=$[$slib_milieu_prov1-0.9], $[$slib_milieu_prov2+0.1] |
116 |
|
116 | slib_dessin =!append line text black,$slib_milieu_prov, medium,$slib_textk to $slib_dessin |
117 | !endif |
- | |
118 | !endif |
- | |
119 | !endif |
117 | !endif |
120 | !next slib_j |
- | |
121 | !if point iswordof $slib_doption |
- | |
122 | slib_dessin =!append line disk $slib_position_prov,30,white\ |
- | |
123 | circle $slib_position_prov,30,$slib_color2 to $slib_dessin |
- | |
124 | !endif |
118 | !endif |
125 | !if $slib_textp <> $empty |
- | |
126 | slib_textk=!item $slib_k of $slib_textp |
- | |
127 | slib_position_prov1=!item 1 of $slib_position_prov |
- | |
128 | slib_position_prov2=!item 2 of $slib_position_prov |
- | |
129 | slib_position_prov=$[$slib_position_prov1-0.9], $[$slib_position_prov2+0.1] |
- | |
130 | slib_dessin =!append line text black,$slib_position_prov, medium,$slib_textk to $slib_dessin |
- | |
131 | !endif |
119 | !endif |
- | 120 | !next slib_j |
|
- | 121 | !if point iswordof $slib_doption |
|
- | 122 | slib_dessin =!append line disk $slib_position_prov,30,white\ |
|
- | 123 | circle $slib_position_prov,30,$slib_color2 to $slib_dessin |
|
- | 124 | !endif |
|
- | 125 | !if $slib_textp <> $empty |
|
- | 126 | slib_textk=!item $slib_k of $slib_textp |
|
- | 127 | slib_position_prov1=!item 1 of $slib_position_prov |
|
- | 128 | slib_position_prov2=!item 2 of $slib_position_prov |
|
- | 129 | slib_position_prov=$[$slib_position_prov1-0.9], $[$slib_position_prov2+0.1] |
|
- | 130 | slib_dessin =!append line text black,$slib_position_prov, medium,$slib_textk to $slib_dessin |
|
- | 131 | !endif |
|
132 | 132 | ||
133 | !next slib_k |
133 | !next slib_k |
134 | 134 | ||
135 | slib_out = $slib_dessin |
135 | slib_out = $slib_dessin |
136 | !if url iswordof $slib_doption or html iswordof $slib_doption |
136 | !if url iswordof $slib_doption or html iswordof $slib_doption |
137 | insdraw_size=300,300 |
137 | insdraw_size=300,300 |
138 | !insdraw $slib_out |
138 | !insdraw $slib_out |
139 | slib_out=$ins_url |
139 | slib_out=$ins_url |
140 | !if html iswordof $slib_doption |
140 | !if html iswordof $slib_doption |
141 | slib_out=<img src="$ins_url" alt="" /> |
141 | slib_out=<img src="$ins_url" alt="" /> |
142 | !else |
142 | !else |
143 | slib_out=$slib_out,[$slib_G],[$slib_position],[$slib_milieu],$insdraw_size |
143 | slib_out=$slib_out,[$slib_G],[$slib_position],[$slib_milieu],$insdraw_size |
144 | !endif |
144 | !endif |
145 |
|
145 | !else |
146 | slib_out=[$slib_dessin],[$slib_G],[$slib_position],[$slib_milieu] |
146 | slib_out=[$slib_dessin],[$slib_G],[$slib_position],[$slib_milieu] |
147 | !endif |
147 | !endif |