File: whereclick

package info (click to toggle)
wims 2%3A4.29a%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 185,704 kB
  • sloc: xml: 366,687; javascript: 120,570; ansic: 62,341; java: 62,170; sh: 7,744; perl: 3,937; yacc: 3,217; cpp: 1,915; lex: 1,805; makefile: 1,084; lisp: 914; pascal: 601; python: 520; php: 318; asm: 7
file content (93 lines) | stat: -rw-r--r-- 2,600 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
!if  $wims_read_parm!=slib_header
  !goto proc
!endif

slib_author=Georges, Khaznadar

slib_example= 12,8,0,0,1,1,125,13\
12,8,0,0,1 max t (ms),1 max U (V),125,13


!exit

:proc

!reset slib_xd, slib_yd, slib_xo, slib_yo, slib_xs, slib_ys, slib_xc, slib_yc, slib_x, slib_y, slib_labx, slib_laby, slib_maxx, slib_maxy

slib_parm=!item 1 to 8 of $wims_read_parm
!distribute item $slib_parm into slib_xd, slib_yd, slib_xo, slib_yo, slib_xs, slib_ys, slib_xc, slib_yc

!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_xc=0
!default slib_yc=0

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_x=$[($slib_xc/60-0.05-$slib_xo)*$slib_xs]
slib_y=$[(-$slib_yc/60-0.05+$slib_yd-$slib_yo)*$slib_ys]

slib_out= $slib_x, $slib_y,