Subversion Repositories wimsdev

Rev

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
	!distribute item $slib_text into slib_textp, slib_textm
22
    !distribute item $slib_text into slib_textp, slib_textm
23
!else
23
!else
24
	slib_textp=$slib_text
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
	slib_G=!append line $slib_i to $slib_G
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
	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
112
					slib_textk=!item $slib_j of $slib_textm
112
                    slib_textk=!item $slib_j of $slib_textm
113
					slib_milieu_prov1=!item 1 of $slib_milieu_prov
113
                    slib_milieu_prov1=!item 1 of $slib_milieu_prov
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
 
-
 
120
		!endif
119
        !endif
121
	!next slib_j
120
    !next slib_j
122
	!if point iswordof $slib_doption
121
    !if point iswordof $slib_doption
123
		slib_dessin =!append line disk $slib_position_prov,30,white\
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
	!endif
124
    !endif
126
	!if $slib_textp <> $empty
125
    !if $slib_textp <> $empty
127
		slib_textk=!item $slib_k of $slib_textp
126
        slib_textk=!item $slib_k of $slib_textp
128
		slib_position_prov1=!item 1 of $slib_position_prov
127
        slib_position_prov1=!item 1 of $slib_position_prov
129
		slib_position_prov2=!item 2 of $slib_position_prov
128
        slib_position_prov2=!item 2 of $slib_position_prov
130
		slib_position_prov=$[$slib_position_prov1-0.9], $[$slib_position_prov2+0.1]
129
        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
130
        slib_dessin =!append line text black,$slib_position_prov, medium,$slib_textk to $slib_dessin
132
	!endif
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