Subversion Repositories wimsdev

Rev

Rev 16835 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4124 bpr 1
!if $wims_read_parm!=slib_header
13582 bpr 2
  !goto proc
4124 bpr 3
!endif
4158 bpr 4
 
4349 bpr 5
slib_author=Paul, Byache; Bernadette, Perrin-Riou
4124 bpr 6
 
16835 bpr 7
slib_example=[1000,200,50,A],[B],,,html\
8
[1000,200,50,A],[B],,,html canvasdraw\
4157 bpr 9
[1000,200,50,A],[B]\
4124 bpr 10
[1000,200,50,A],[B],,,url\
4157 bpr 11
[1000,200,50,A],[B],6,yellow,html one\
4175 bpr 12
[1000,200,50,A],[B],-6,,html
4124 bpr 13
 
14
!exit
15
 
16
:proc
4157 bpr 17
!reset slib_left slib_right slib_left1 slib_right1 slib_objet_left slib_objet_right slib_option
4124 bpr 18
 
19
!distribute items $wims_read_parm into slib_left1,slib_right1,slib_penche,slib_color,slib_option
20
slib_left1=!declosing $slib_left1
21
slib_right1=!declosing $slib_right1
22
 
23
!for slib_u in $slib_left1
16835 bpr 24
    !if $slib_u iswordof 1000 500 200 100 50 20 10 5 2 1
25
      slib_left = !append item $slib_u to $slib_left
26
    !else
27
      slib_objet_left=!append item $slib_u to $slib_objet_left
28
    !endif
4124 bpr 29
!next
30
!for slib_u in $slib_right1
16835 bpr 31
    !if $slib_u iswordof 1000 500 200 100 50 20 10 5 2 1
32
      slib_right = !append item $slib_u to $slib_right
33
    !else
34
      slib_objet_right=!append item $slib_u to $slib_objet_right
35
    !endif
4124 bpr 36
!next
4157 bpr 37
slib_color=!append item $slib_color to $slib_color
38
slib_color=!nonempty items $slib_color
39
!default slib_color=!shuffle orange,purple,red,yellow
4124 bpr 40
negatif -> right plus bas
41
!!slib_penche=-7
42
!default slib_penche=0
43
slib_agr=1.8
44
slib_par=!randint -20,20
45
slib_width1000=12
46
slib_height1000=35
47
slib_poids1000=frectangle 0,0,$(slib_width1000),$(slib_height1000),white\
16835 bpr 48
frectangle 0,0,$(slib_width1000),$(slib_height1000),lightgrey\
4124 bpr 49
rectangle 0,0,$(slib_width1000),$(slib_height1000),black\
50
fcircle $[$(slib_width1000)/2],$[$slib_height1000+2],15,black\
51
text black,2,28,medium,1kg
52
 
53
slib_width500=11
54
slib_height500=25
55
slib_poids500=frectangle 0,0,$(slib_width500),$(slib_height500),white\
16835 bpr 56
frectangle 0,0,$(slib_width500),$(slib_height500),lightgrey\
4124 bpr 57
rectangle 0,0,$(slib_width500),$(slib_height500),black\
58
fcircle $[$(slib_width500)/2],$[$slib_height500+2],15,black\
59
text black,1,18,medium,500g
60
 
61
slib_width200=10
62
slib_height200=20
63
slib_poids200=frectangle 0,0,$(slib_width200),$(slib_height200),white\
16835 bpr 64
frectangle 0,0,$(slib_width200),$(slib_height200),lightgrey\
4124 bpr 65
rectangle 0,0,$(slib_width200),$(slib_height200),black\
66
fcircle $[$(slib_width200)/2],$[$slib_height200+2],15,black\
67
text black,1,14,medium,200g
68
 
69
slib_width100=9
70
slib_height100=15
71
slib_poids100=frectangle 0,0,$(slib_width100),$(slib_height100),white\
16835 bpr 72
frectangle 0,0,$(slib_width100),$(slib_height100),lightgrey\
4124 bpr 73
rectangle 0,0,$(slib_width100),$(slib_height100),black\
74
fcircle $[$(slib_width100)/2],$[$slib_height100+1],10,black\
75
text black,1,9,medium,100g
76
 
77
slib_width50=8
78
slib_height50=12
79
slib_poids50=frectangle 0,0,$(slib_width50),$(slib_height50),white\
16835 bpr 80
frectangle 0,0,$(slib_width50),$(slib_height50),lightgrey\
4124 bpr 81
rectangle 0,0,$(slib_width50),$(slib_height50),black\
82
fcircle $[$(slib_width50)/2],$[$slib_height50+1],10,black\
83
text black,1,$[$(slib_height50)/2+1],medium,50g
84
 
85
slib_width20=7
86
slib_height20=10
87
slib_poids20=frectangle 0,0,$(slib_width20),$(slib_height20),white\
16835 bpr 88
frectangle 0,0,$(slib_width20),$(slib_height20),lightgrey\
4124 bpr 89
rectangle 0,0,$(slib_width20),$(slib_height20),black\
90
fcircle $[$(slib_width20)/2],$[$slib_height20+1],10,black\
91
text black,1,$[$(slib_height20)/2+1],medium,20g
92
 
93
slib_width10=6
94
slib_height10=7
95
slib_poids10=frectangle 0,0,$(slib_width10),$(slib_height10),white\
16835 bpr 96
frectangle 0,0,$(slib_width10),$(slib_height10),lightgrey\
4124 bpr 97
rectangle 0,0,$(slib_width10),$(slib_height10),black\
98
fcircle $[$(slib_width10)/2],$[$slib_height10+1],10,black\
99
text black,0,$[$slib_height10/2+1],medium,10g
100
 
101
slib_width5=5
102
slib_height5=5
103
slib_poids5=frectangle 0,0,$(slib_width5),$(slib_height5),white\
16835 bpr 104
frectangle 0,0,$(slib_width5),$(slib_height5),lightgrey\
4124 bpr 105
rectangle 0,0,$(slib_width5),$(slib_height5),black\
106
fcircle $[$(slib_width5)/2],$[$slib_height5+1],7,7,black\
107
text black,1,$[$(slib_height5)],medium,5g
108
 
109
slib_width2=4
110
slib_height2=3
111
slib_poids2=frectangle 0,0,$(slib_width2),$(slib_height2),white\
16835 bpr 112
frectangle 0,0,$(slib_width2),$(slib_height2),lightgrey\
4124 bpr 113
rectangle 0,0,$(slib_width2),$(slib_height2),black\
114
fcircle $[$(slib_width2)/2],$[$slib_height2+1],5,black\
115
text black,1,$[$(slib_height2)],medium,2g
116
 
117
slib_width1=2
118
slib_height1=2
119
slib_poids1=rectangle 0,0,$(slib_width1),$(slib_height1),white\
16835 bpr 120
frectangle 0,0,$(slib_width1),$(slib_height1),lightgrey\
4124 bpr 121
rectangle 0,0,$(slib_width1),$(slib_height1),black\
9888 bpr 122
fill 1,1,lightgrey\
4124 bpr 123
fcircle $[$(slib_width1)/2],$[$slib_height1+1],5,black\
124
text black,1,$[$(slib_height1)],medium,1g
125
 
126
slib_tmp=!randint 10, 20
127
 
4157 bpr 128
slib_form_g=!nosubst ftriangle 0,$[$slib_h],5,$[$slib_h+10],10,$[$slib_h],$(slib_color[1])\
4175 bpr 129
frectangle 2.5,$[$slib_h],5,$[$slib_h+5],$(slib_color[1])\
130
fcircle 5,$[$slib_h],50,$(slib_color[1])
7692 bpr 131
 
4157 bpr 132
slib_form_d=!nosubst ftriangle 0,$[$slib_h],5,$[$slib_h+10],10,$[$slib_h],$(slib_color[2])\
4175 bpr 133
frectangle 2.5,$[$slib_h],5,$[$slib_h+5],$(slib_color[2])\
134
fcircle 5,$[$slib_h],50,$(slib_color[2])
4124 bpr 135
 
136
slib_t=0
137
!reset slib_g
138
!if $slib_objet_left!=$empty
14850 bpr 139
  slib_ord=!sort numeric item $slib_left
140
  !for slib_u in $slib_objet_left
13582 bpr 141
    !if one notwordof $slib_option
142
      slib_h=$[max($(slib_height$(slib_ord[-1])) + 3,$slib_tmp)]
143
      slib_form1=!randline $slib_form_g
144
    !else
145
      slib_h =$(slib_height500)
146
      slib_form1=
147
    !endif
148
    slib_g=!append line translation XXX+$slib_t,20-$slib_penche\
4175 bpr 149
frectangle 0,0,10,$[$slib_h],$(slib_color[1])\
150
$slib_form1\
151
text black,5,$[$slib_h/2],large,$slib_u\
152
killtranslation to $slib_g
13582 bpr 153
    slib_t=$[$slib_t+12]
154
  !next
4124 bpr 155
!endif
156
 
157
!for slib_p in $slib_left
9888 bpr 158
  slib_g=!append line translation XXX+$slib_t,$[20-$slib_penche]\
4124 bpr 159
$(slib_poids$slib_p)\
160
killtranslation \
161
to $slib_g
13582 bpr 162
  slib_t=$[$slib_t + $(slib_width$slib_p)-1]
4124 bpr 163
!next
13582 bpr 164
slib_g= !replace internal XXX by $[30-$slib_t/2] in $slib_g
4124 bpr 165
 
166
slib_t=0
167
!reset slib_d
168
!if $slib_objet_right!=$empty
169
  slib_ord=!sort numeric item $slib_right
170
  !for slib_u in $slib_objet_right
16835 bpr 171
    !if one notwordof $slib_option
172
      slib_h=$[max($(slib_height$(slib_ord[-1])) + 3,$slib_tmp)]
173
      slib_form1=!randline $slib_form_d
13582 bpr 174
    !else
16835 bpr 175
      slib_h =$(slib_height500)
176
      slib_form1=
177
    !endif
178
    slib_d=!append line translation XXX+$slib_t,$[20+$slib_penche]\
9888 bpr 179
frectangle 0,0,10,$[$slib_h],$(slib_color[2])\
4175 bpr 180
$slib_form1\
181
text black, 5,$[$slib_h/2],large,$slib_u\
182
killtranslation to $slib_d
13582 bpr 183
    slib_t=$[$slib_t+12]
184
  !next
4124 bpr 185
!endif
186
 
187
!for slib_p in $slib_right
9888 bpr 188
  slib_d=!append line translation XXX+$slib_t,$[20+$slib_penche]\
4124 bpr 189
$(slib_poids$slib_p)\
190
killtranslation \
191
to $slib_d
13582 bpr 192
  slib_t=$[$slib_t + $(slib_width$slib_p) - 1]
4124 bpr 193
!next
194
slib_d= !replace internal XXX by $[110-$slib_t/2] in $slib_d
195
 
9888 bpr 196
slib_nuage=disk $[$slib_par+80],65,$[40*$slib_agr],white\
197
disk $[$slib_par+85],72,$[30*$slib_agr],white\
198
disk $[$slib_par+110],75,$[40*$slib_agr],white\
199
disk $[$slib_par+120],65,$[40*$slib_agr],white\
200
disk $[$slib_par+97],68,$[60*$slib_agr],white
4124 bpr 201
 
202
slib_dessin=xrange 0,140\
203
yrange -10,90\
204
fill 0,0,skyblue\
8521 bpr 205
polyline brown,5,0,30,0,35,5,105,5,110,0,135,0,120,15,20,15,5,0\
16835 bpr 206
fill 20,10,blue\
4124 bpr 207
$slib_nuage\
208
linewidth 2\
209
$slib_g\
210
$slib_d\
211
linewidth 2\
8580 bpr 212
polyline black,5,$[25-$slib_penche],10,$[20-$slib_penche],50,$[20-$slib_penche],55,$[25-$slib_penche]\
213
polyline black,85,$[25+$slib_penche],90,$[20+$slib_penche],130,$[20+$slib_penche],135,$[25+$slib_penche]\
4124 bpr 214
linewidth 1\
215
arc 70,7,24,18,0,180,black\
8584 bpr 216
segment 58,7,82,7,black\
4124 bpr 217
fill 75,10,white\
8580 bpr 218
polyline black,30,$[20-$slib_penche],30,$[10-$slib_penche],110,$[10+$slib_penche],110,$[20+$slib_penche]\
219
arrow 70,10,$[70-$slib_penche],22,$[12*$slib_agr],black\
220
disk 30,$[10-$slib_penche],$[8*$slib_agr],black\
221
disk 70,10,$[8*$slib_agr],black\
222
disk 110,$[10+$slib_penche],$[8*$slib_agr],black\
8584 bpr 223
segment 0,0,140,0,green\
8580 bpr 224
fill 5,-5,green
4124 bpr 225
 
226
slib_out=$slib_dessin
4157 bpr 227
!if url iswordof $slib_option or html iswordof $slib_option
4124 bpr 228
  insdraw_size=700,300
16835 bpr 229
  !if canvasdraw isin $slib_option
230
    slib_out=!exec canvasdraw\
231
size $insdraw_size\
232
$slib_dessin
13582 bpr 233
  !else
16835 bpr 234
    !insdraw $slib_out
235
    slib_out=$ins_url
236
    !if html iswordof $slib_option
17173 bpr 237
      slib_out=<img src="$ins_url" alt="">
16835 bpr 238
    !else
239
      slib_out=$slib_out,$insdraw_size
240
    !endif
13582 bpr 241
  !endif
4157 bpr 242
!endif