Rev 4162 | Blame | Compare with Previous | Last modification | View Log | RSS feed
!if $wims_read_parm!=slib_header
!goto proc
!endif
slib_author=Georges, Khaznadar
!exit
:proc
!reset slib_xd, slib_yd, slib_xo, slib_yo, slib_xs, slib_ys, slib_list, slib_x, slib_y, slib_labx, slib_laby, slib_maxx, slib_maxy
slib_parm=!item 1 to 6 of $wims_read_parm
!distribute item $slib_parm into slib_xd, slib_yd, slib_xo, slib_yo, slib_xs, slib_ys
slib_list=!item 7 to -1 of $wims_read_parm
!default slib_xd=8
!default slib_yd=8
!default slib_xo=1
!default slib_yo=1
!default slib_xs=1
!default slib_ys=1
!default slib_list=0,0
slib_list=!declosing $slib_list
slib_labx=!word 2 to -1 of $slib_xs
slib_laby=!word 2 to -1 of $slib_ys
slib_xs=!word 1 of $slib_xs
slib_ys=!word 1 of $slib_ys
slib_maxx=!word 1 of $slib_labx
!if $slib_maxx = max
slib_labx = !word 2 to -1 of $slib_labx
!! we need to compute the X step slib_xs, given the values
!! of the total width slib_xd, abscissa of origin slib_xo
!! and knowing that slib_xs currently means a maximum value.
!! slib_xd-slib_xo must be be sufficient to display ticks greater
!! than the current value of slib_xs, the tick step being a multiple
!! of 1, 2 or 5.
slib_log=$[log10($slib_xs/($slib_xd-$slib_xo))]
slib_logint=$[floor($slib_log)]
slib_logmant=$[$slib_log-$slib_logint]
!if $slib_logmant > $[log10(5)]
slib_xs=1e$[$slib_logint+1]
!else
!if $slib_logmant > $[log10(2)]
slib_xs=5e$slib_logint
!else
slib_xs=2e$slib_logint
!endif
!endif
!else
slib_maxx=$empty
!endif
slib_maxy=!word 1 of $slib_laby
!if $slib_maxy = max
slib_laby = !word 2 to -1 of $slib_laby
!! we need to compute the Y step slib_ys, given the values
!! of the total height slib_yd, ordinate of origin slib_yo
!! and knowing that slib_ys currently means a maximum value.
!! slib_yd-slib_yo must be be sufficient to display ticks greater
!! than the current value of slib_ys, the tick step being a multiple
!! of 1, 2 or 5.
slib_log=$[log10($slib_ys/($slib_yd-$slib_yo))]
slib_logint=$[floor($slib_log)]
slib_logmant=$[$slib_log-$slib_logint]
!if $slib_logmant > $[log10(5)]
slib_ys=1e$[$slib_logint+1]
!else
!if $slib_logmant > $[log10(2)]
slib_ys=5e$slib_logint
!else
slib_ys=2e$slib_logint
!endif
!endif
!else
slib_maxy=$empty
!endif
!!!!!! values from millimetre !!!!
!! new 60*$slib_xd,60*$slib_yd
!! xrange -0.5, 10*$slib_xd-0.5
!! yrange -0.5, 10*$slib_yd-0.5
slib_out=
!while void$slib_list != void
slib_x=!item 1 of $slib_list
slib_y=!item 2 of $slib_list
slib_out=$slib_out, $[10*($slib_x+$slib_xo)]
slib_out=$slib_out, $[10*($slib_y+$slib_yo)]
slib_list=!item 3 to -1 of $slib_list
!endwhile
slib_out=!item 2 to -1 of $slib_out
!!! suppression de la virgule en trop au début