Rev 7692 | Rev 8560 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7692 | Rev 8321 | ||
---|---|---|---|
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 line $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 |
|
117 | !endif |
118 |
|
118 | !endif |
119 | - | ||
120 |
|
119 | !endif |
121 |
|
120 | !next slib_j |
122 |
|
121 | !if point iswordof $slib_doption |
123 |
|
122 | slib_dessin =!append line disk $slib_position_prov,30,white\ |
124 | circle $slib_position_prov,30,$slib_color2 to $slib_dessin |
123 | circle $slib_position_prov,30,$slib_color2 to $slib_dessin |
125 |
|
124 | !endif |
126 |
|
125 | !if $slib_textp <> $empty |
127 |
|
126 | slib_textk=!item $slib_k of $slib_textp |
128 |
|
127 | slib_position_prov1=!item 1 of $slib_position_prov |
129 |
|
128 | slib_position_prov2=!item 2 of $slib_position_prov |
130 |
|
129 | slib_position_prov=$[$slib_position_prov1-0.9], $[$slib_position_prov2+0.1] |
131 |
|
130 | slib_dessin =!append line text black,$slib_position_prov, medium,$slib_textk to $slib_dessin |
132 |
|
131 | !endif |
133 | 132 | ||
134 | !next slib_k |
133 | !next slib_k |
135 | 134 | ||
136 | slib_out = $slib_dessin |
135 | slib_out = $slib_dessin |
137 | !if url iswordof $slib_doption or html iswordof $slib_doption |
136 | !if url iswordof $slib_doption or html iswordof $slib_doption |