Subversion Repositories wimsdev

Rev

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

!if $wims_read_parm!=slib_header
  !goto proc
!endif

slib_author=Paul, Byache; Bernadette, Perrin-Riou

slib_example=[1000,200,50,A],[B],,,html\
[1000,200,50,A],[B],,,html canvasdraw\
[1000,200,50,A],[B]\
[1000,200,50,A],[B],,,url\
[1000,200,50,A],[B],6,yellow,html one\
[1000,200,50,A],[B],-6,,html

!exit

:proc
!reset slib_left slib_right slib_left1 slib_right1 slib_objet_left slib_objet_right slib_option

!distribute items $wims_read_parm into slib_left1,slib_right1,slib_penche,slib_color,slib_option
slib_left1=!declosing $slib_left1
slib_right1=!declosing $slib_right1

!for slib_u in $slib_left1
    !if $slib_u iswordof 1000 500 200 100 50 20 10 5 2 1
      slib_left = !append item $slib_u to $slib_left
    !else
      slib_objet_left=!append item $slib_u to $slib_objet_left
    !endif
!next
!for slib_u in $slib_right1
    !if $slib_u iswordof 1000 500 200 100 50 20 10 5 2 1
      slib_right = !append item $slib_u to $slib_right
    !else
      slib_objet_right=!append item $slib_u to $slib_objet_right
    !endif
!next
slib_color=!append item $slib_color to $slib_color
slib_color=!nonempty items $slib_color
!default slib_color=!shuffle orange,purple,red,yellow
negatif -> right plus bas
!!slib_penche=-7
!default slib_penche=0
slib_agr=1.8
slib_par=!randint -20,20
slib_width1000=12
slib_height1000=35
slib_poids1000=frectangle 0,0,$(slib_width1000),$(slib_height1000),white\
frectangle 0,0,$(slib_width1000),$(slib_height1000),lightgrey\
rectangle 0,0,$(slib_width1000),$(slib_height1000),black\
fcircle $[$(slib_width1000)/2],$[$slib_height1000+2],15,black\
text black,2,28,medium,1kg

slib_width500=11
slib_height500=25
slib_poids500=frectangle 0,0,$(slib_width500),$(slib_height500),white\
frectangle 0,0,$(slib_width500),$(slib_height500),lightgrey\
rectangle 0,0,$(slib_width500),$(slib_height500),black\
fcircle $[$(slib_width500)/2],$[$slib_height500+2],15,black\
text black,1,18,medium,500g

slib_width200=10
slib_height200=20
slib_poids200=frectangle 0,0,$(slib_width200),$(slib_height200),white\
frectangle 0,0,$(slib_width200),$(slib_height200),lightgrey\
rectangle 0,0,$(slib_width200),$(slib_height200),black\
fcircle $[$(slib_width200)/2],$[$slib_height200+2],15,black\
text black,1,14,medium,200g

slib_width100=9
slib_height100=15
slib_poids100=frectangle 0,0,$(slib_width100),$(slib_height100),white\
frectangle 0,0,$(slib_width100),$(slib_height100),lightgrey\
rectangle 0,0,$(slib_width100),$(slib_height100),black\
fcircle $[$(slib_width100)/2],$[$slib_height100+1],10,black\
text black,1,9,medium,100g

slib_width50=8
slib_height50=12
slib_poids50=frectangle 0,0,$(slib_width50),$(slib_height50),white\
frectangle 0,0,$(slib_width50),$(slib_height50),lightgrey\
rectangle 0,0,$(slib_width50),$(slib_height50),black\
fcircle $[$(slib_width50)/2],$[$slib_height50+1],10,black\
text black,1,$[$(slib_height50)/2+1],medium,50g

slib_width20=7
slib_height20=10
slib_poids20=frectangle 0,0,$(slib_width20),$(slib_height20),white\
frectangle 0,0,$(slib_width20),$(slib_height20),lightgrey\
rectangle 0,0,$(slib_width20),$(slib_height20),black\
fcircle $[$(slib_width20)/2],$[$slib_height20+1],10,black\
text black,1,$[$(slib_height20)/2+1],medium,20g

slib_width10=6
slib_height10=7
slib_poids10=frectangle 0,0,$(slib_width10),$(slib_height10),white\
frectangle 0,0,$(slib_width10),$(slib_height10),lightgrey\
rectangle 0,0,$(slib_width10),$(slib_height10),black\
fcircle $[$(slib_width10)/2],$[$slib_height10+1],10,black\
text black,0,$[$slib_height10/2+1],medium,10g

slib_width5=5
slib_height5=5
slib_poids5=frectangle 0,0,$(slib_width5),$(slib_height5),white\
frectangle 0,0,$(slib_width5),$(slib_height5),lightgrey\
rectangle 0,0,$(slib_width5),$(slib_height5),black\
fcircle $[$(slib_width5)/2],$[$slib_height5+1],7,7,black\
text black,1,$[$(slib_height5)],medium,5g

slib_width2=4
slib_height2=3
slib_poids2=frectangle 0,0,$(slib_width2),$(slib_height2),white\
frectangle 0,0,$(slib_width2),$(slib_height2),lightgrey\
rectangle 0,0,$(slib_width2),$(slib_height2),black\
fcircle $[$(slib_width2)/2],$[$slib_height2+1],5,black\
text black,1,$[$(slib_height2)],medium,2g

slib_width1=2
slib_height1=2
slib_poids1=rectangle 0,0,$(slib_width1),$(slib_height1),white\
frectangle 0,0,$(slib_width1),$(slib_height1),lightgrey\
rectangle 0,0,$(slib_width1),$(slib_height1),black\
fill 1,1,lightgrey\
fcircle $[$(slib_width1)/2],$[$slib_height1+1],5,black\
text black,1,$[$(slib_height1)],medium,1g

slib_tmp=!randint 10, 20

slib_form_g=!nosubst ftriangle 0,$[$slib_h],5,$[$slib_h+10],10,$[$slib_h],$(slib_color[1])\
frectangle 2.5,$[$slib_h],5,$[$slib_h+5],$(slib_color[1])\
fcircle 5,$[$slib_h],50,$(slib_color[1])

slib_form_d=!nosubst ftriangle 0,$[$slib_h],5,$[$slib_h+10],10,$[$slib_h],$(slib_color[2])\
frectangle 2.5,$[$slib_h],5,$[$slib_h+5],$(slib_color[2])\
fcircle 5,$[$slib_h],50,$(slib_color[2])

slib_t=0
!reset slib_g
!if $slib_objet_left!=$empty
  slib_ord=!sort numeric item $slib_left
  !for slib_u in $slib_objet_left
    !if one notwordof $slib_option
      slib_h=$[max($(slib_height$(slib_ord[-1])) + 3,$slib_tmp)]
      slib_form1=!randline $slib_form_g
    !else
      slib_h =$(slib_height500)
      slib_form1=
    !endif
    slib_g=!append line translation XXX+$slib_t,20-$slib_penche\
frectangle 0,0,10,$[$slib_h],$(slib_color[1])\
$slib_form1\
text black,5,$[$slib_h/2],large,$slib_u\
killtranslation to $slib_g
    slib_t=$[$slib_t+12]
  !next
!endif

!for slib_p in $slib_left
  slib_g=!append line translation XXX+$slib_t,$[20-$slib_penche]\
$(slib_poids$slib_p)\
killtranslation \
to $slib_g
  slib_t=$[$slib_t + $(slib_width$slib_p)-1]
!next
slib_g= !replace internal XXX by $[30-$slib_t/2] in $slib_g

slib_t=0
!reset slib_d
!if $slib_objet_right!=$empty
  slib_ord=!sort numeric item $slib_right
  !for slib_u in $slib_objet_right
    !if one notwordof $slib_option
      slib_h=$[max($(slib_height$(slib_ord[-1])) + 3,$slib_tmp)]
      slib_form1=!randline $slib_form_d
    !else
      slib_h =$(slib_height500)
      slib_form1=
    !endif
    slib_d=!append line translation XXX+$slib_t,$[20+$slib_penche]\
frectangle 0,0,10,$[$slib_h],$(slib_color[2])\
$slib_form1\
text black, 5,$[$slib_h/2],large,$slib_u\
killtranslation to $slib_d
    slib_t=$[$slib_t+12]
  !next
!endif

!for slib_p in $slib_right
  slib_d=!append line translation XXX+$slib_t,$[20+$slib_penche]\
$(slib_poids$slib_p)\
killtranslation \
to $slib_d
  slib_t=$[$slib_t + $(slib_width$slib_p) - 1]
!next
slib_d= !replace internal XXX by $[110-$slib_t/2] in $slib_d

slib_nuage=disk $[$slib_par+80],65,$[40*$slib_agr],white\
disk $[$slib_par+85],72,$[30*$slib_agr],white\
disk $[$slib_par+110],75,$[40*$slib_agr],white\
disk $[$slib_par+120],65,$[40*$slib_agr],white\
disk $[$slib_par+97],68,$[60*$slib_agr],white

slib_dessin=xrange 0,140\
yrange -10,90\
fill 0,0,skyblue\
polyline brown,5,0,30,0,35,5,105,5,110,0,135,0,120,15,20,15,5,0\
fill 20,10,blue\
$slib_nuage\
linewidth 2\
$slib_g\
$slib_d\
linewidth 2\
polyline black,5,$[25-$slib_penche],10,$[20-$slib_penche],50,$[20-$slib_penche],55,$[25-$slib_penche]\
polyline black,85,$[25+$slib_penche],90,$[20+$slib_penche],130,$[20+$slib_penche],135,$[25+$slib_penche]\
linewidth 1\
arc 70,7,24,18,0,180,black\
segment 58,7,82,7,black\
fill 75,10,white\
polyline black,30,$[20-$slib_penche],30,$[10-$slib_penche],110,$[10+$slib_penche],110,$[20+$slib_penche]\
arrow 70,10,$[70-$slib_penche],22,$[12*$slib_agr],black\
disk 30,$[10-$slib_penche],$[8*$slib_agr],black\
disk 70,10,$[8*$slib_agr],black\
disk 110,$[10+$slib_penche],$[8*$slib_agr],black\
segment 0,0,140,0,green\
fill 5,-5,green

slib_out=$slib_dessin
!if url iswordof $slib_option or html iswordof $slib_option
  insdraw_size=700,300
  !if canvasdraw isin $slib_option
    slib_out=!exec canvasdraw\
size $insdraw_size\
$slib_dessin
  !else
    !insdraw $slib_out
    slib_out=$ins_url
    !if html iswordof $slib_option
      slib_out=<img src="$ins_url" alt="">
    !else
      slib_out=$slib_out,$insdraw_size
    !endif
  !endif
!endif