Subversion Repositories wimsdev

Rev

Rev 3560 | Rev 4158 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
3560 georgesk 1
!if $wims_read_parm!=slib_header
2
 !goto proc
3
!endif
4
slib_title=Inline Trigonometric calculator
5
slib_parms=2\
6
Angle:, translation of "angle" in your language\
7
Value:,  translation of "value" in your language
8
slib_author=Georges Khaznadar
9
slib_license=GPL
10
slib_out= Javascript and html code to embed a calculator.
11
slib_comment=N.B.: the calculator is in a DIV element with an id "calc-trigo".\
12
You can use this property in a CSS stylesheet.
13
slib_example= Angle :, Valeur trigonométrique :
14
!exit
15
 
16
:proc
17
!reset slib_aname, slib_vname, slib_code
18
slib_parm=!item 1 to 2 of $wims_read_parm
19
!distribute item $slib_parm into slib_aname, slib_vname
20
 
21
slib_code=<script type="text/javascript">\
22
  var a; /* angle en radian */\
23
  var v; /* valeur du sinus, cosinus ou tangente, sans unité */\
24
  function get_a(){\
25
    angle=document.getElementById("angle").value;\
26
    unite=document.getElementById("unite").value;\
27
    a=angle*unite;\
28
  }\
29
  function set_a(){\
30
    if (a=="undef"){\
31
      document.getElementById("angle").value="undef";\
32
    } else{\
33
      unite=document.getElementById("unite").value;\
34
      angle=a/unite;\
35
      document.getElementById("angle").value=angle;\
36
    }\
37
  }\
38
  function get_v(){\
39
    v=document.getElementById("trig-value").value;\
40
  }\
41
  function set_v(){\
42
    document.getElementById("trig-value").value=v;\
43
  }\
44
  function asin(){\
45
    get_v();\
46
    if (v<-1 || v >1){\
47
      a="undef";\
48
      set_a();\
49
    } else {\
50
      a=Math.asin(v);\
51
      set_a();\
52
    }\
53
  }\
54
  function sin(){\
55
    get_a();\
56
    v=Math.sin(a);\
57
    set_v();\
58
  }\
59
  function acos(){\
60
    get_v();\
61
    if (v<-1 || v >1){\
62
      a="undef";\
63
      set_a();\
64
    } else {\
65
      a=Math.acos(v);\
66
      set_a();\
67
    }\
68
  }\
69
  function cos(){\
70
    get_a();\
71
    v=Math.cos(a);\
72
    set_v();\
73
  }\
74
  function atan(){\
75
    get_v();\
76
    a=Math.atan(v);\
77
    set_a();\
78
  }\
79
  function tan(){\
80
    get_a();\
81
    v=Math.tan(a);\
82
    set_v();\
83
  }\
84
</script>\
85
<div id="calc-trigo" >\
86
<table style="padding:0.5em; border:3px ridge navy; background:lightcyan; -moz-border-radius: 1em;" >\
87
<tr>\
88
  <td colspan="6" style="text-align:center;" >\
89
    <b>Angle:</b>\
90
    <input id="angle" value="0" style="text-align:right; border:3px ridge navy; -moz-border-radius: 0.5em;" />&nbsp;\
91
    <select id="unite" style="text-align:right; border:3px ridge navy; -moz-border-radius: 0.5em;">\
92
      <option value="0.017453292519943295769">°&nbsp;</option>\
93
      <option value="1">rad&nbsp;</option>\
94
    </select >\
95
  </td>\
96
<tr>\
97
  <td><button onclick="sin(); return false;" style="border:2px outset navy; -moz-border-radius: 0.5em;" >&darr;sin</button></td>\
98
  <td><button onclick="asin(); return false;" style="border:2px outset navy; -moz-border-radius: 0.5em;" >&uarr;asin</button></td>\
99
  <td><button onclick="cos(); return false;" style="border:2px outset navy; -moz-border-radius: 0.5em;" >&darr;cos</button></td>\
100
  <td><button onclick="acos(); return false;" style="border:2px outset navy; -moz-border-radius: 0.5em;" >&uarr;acos</button></td>\
101
  <td><button onclick="tan(); return false;" style="border:2px outset navy; -moz-border-radius: 0.5em;" >&darr;tan</button></td>\
102
  <td><button onclick="atan(); return false;" style="border:2px outset navy; -moz-border-radius: 0.5em;" >&uarr;atan</button></td>\
103
</tr>\
104
<tr>\
105
  <td colspan="6" style="text-align:center;" >\
106
    <b>Value:</b> \
107
    <input id="trig-value"  value="0" style="text-align:right; border:3px ridge navy; -moz-border-radius: 0.5em;" />\
108
  </td>\
3561 bpr 109
</tr>\
3560 georgesk 110
</table>\
111
</div>
112
 
113
slib_code=!replace Angle: by $slib_aname in $slib_code
114
slib_code=!replace Value: by $slib_vname in $slib_code
115
 
116
slib_out=$slib_code