Subversion Repositories wimsdev

Rev

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