Subversion Repositories wimsdev

Rev

Rev 16641 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 16641 Rev 16649
Line 16... Line 16...
16
 
16
 
17
slib_comment=[zone de dessin xmin et xmax,zone de dessin ymin et ymax],\
17
slib_comment=[zone de dessin xmin et xmax,zone de dessin ymin et ymax],\
18
  coordonnées xb et yb du point D,coordonnées xe et ye du point F,\
18
  coordonnées xb et yb du point D,coordonnées xe et ye du point F,\
19
  (optionnel) sens de la parabole up dessus et down dessous
19
  (optionnel) sens de la parabole up dessus et down dessous
20
 
20
 
21
slib_example=[-10,10,-200,250],-7,0,8,200,down
21
slib_example=[-10,10,-10,10],8,8,-7,0,down\
-
 
22
[-10,10,-10,10],8,8,-7,0,up\
-
 
23
[-10,10,-10,10],8,0,-7,8,down\
-
 
24
[-10,10,-10,10],8,0,-7,8,up\
-
 
25
[-10,10,-10,10],8,0,-7,0,down\
-
 
26
[-10,10,-10,10],8,0,-7,0,up\
-
 
27
[-10,10,-10,10],-7,0,8,8,down\
-
 
28
[-10,10,-10,10],-7,0,8,8,up\
-
 
29
[-10,10,-10,10],-7,8,8,0,down\
-
 
30
[-10,10,-10,10],-7,8,8,0,up\
-
 
31
[-10,10,-10,10],-7,0,8,0,down\
-
 
32
[-10,10,-10,10],-7,0,8,0,up\
-
 
33
[-10,10,-10,10],8,0,8,8,down\
-
 
34
[-10,10,-10,10],8,0,8,8,up\
-
 
35
[-10,10,-10,10],8,8,8,0,down\
-
 
36
[-10,10,-10,10],8,8,8,0,up\
22
 
37
 
23
!exit
38
!exit
24
 
39
 
25
:proc
40
:proc
26
 
41
 
Line 31... Line 46...
31
!set slib_xmin=$($slib_zone[1])
46
!set slib_xmin=$($slib_zone[1])
32
!set slib_xmax=$($slib_zone[2])
47
!set slib_xmax=$($slib_zone[2])
33
!set slib_ymin=$($slib_zone[3])
48
!set slib_ymin=$($slib_zone[3])
34
!set slib_ymax=$($slib_zone[4])
49
!set slib_ymax=$($slib_zone[4])
35
slib_xy=$slib_xb,$slib_yb,$slib_xe,$slib_ye
50
slib_xy=$slib_xb,$slib_yb,$slib_xe,$slib_ye
-
 
51
!!slib_xyinitial=$slib_xy
36
!distribute items $slib_xy into slib_xb,slib_yb,slib_xe,slib_ye
52
!!distribute items $slib_xy into slib_xb,slib_yb,slib_xe,slib_ye
37
!!--- calculs pour trouver down ou up
53
!!--- calculs pour trouver down ou up
38
!if $slib_pos=
54
!if $slib_pos=
39
  !set slib_L=$[sqrt((($slib_xe-$slib_xb)^2)+(($slib_ye-$slib_yb)^2))]
55
  !set slib_L=$[sqrt((($slib_xe-$slib_xb)^2)+(($slib_ye-$slib_yb)^2))]
40
  !set slib_xm=$[($slib_xe+$slib_xb)/2]
56
  !set slib_xm=$[($slib_xe+$slib_xb)/2]
41
  !set slib_ym=$[($slib_ye+$slib_yb)/2]
57
  !set slib_ym=$[($slib_ye+$slib_yb)/2]
Line 52... Line 68...
52
!!on change un peu les extrémités
68
!!on change un peu les extrémités
53
!distribute item 0,0,0,0, into slib_signxb,slib_signyb,slib_signxe,slib_signye
69
!distribute item 0,0,0,0, into slib_signxb,slib_signyb,slib_signxe,slib_signye
54
!set slib_ss=1
70
!set slib_ss=1
55
!if $slib_pos=up
71
!if $slib_pos=up
56
  !set slib_ss=1
72
  !set slib_ss=1
57
!endif
73
!endif
58
!if $slib_pos=down
74
!if $slib_pos=down
59
  !set slib_ss=-1
75
  !set slib_ss=-1
60
!endif
76
!endif
61
!if $slib_xb < $slib_xe and $slib_yb < $slib_ye
77
!if $slib_xb < $slib_xe and $slib_yb < $slib_ye
62
    !distribute item $slib_ss,$slib_ss,-($slib_ss),-($slib_ss) into slib_signxb,slib_signyb,slib_signxe,slib_signye
78
    !distribute item 0,$slib_ss,0,($slib_ss) into slib_signxb,slib_signyb,slib_signxe,slib_signye
63
!endif
79
!endif
64
!if $slib_xb < $slib_xe and $slib_yb > $slib_ye
80
!if $slib_xb < $slib_xe and $slib_yb > $slib_ye
65
  !distribute item 1,-($slib_ss),-1,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
81
  !distribute item 0,($slib_ss),0,($slib_ss) into slib_signxb,slib_signyb,slib_signxe,slib_signye
66
!endif
82
!endif
67
!if $slib_xb < $slib_xe and $slib_yb = $slib_ye
83
!if $slib_xb < $slib_xe and $slib_yb = $slib_ye
68
  !distribute item 1,$slib_ss,-1,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
84
  !distribute item 0,$slib_ss,0,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
69
!endif
85
!endif
70
!if $slib_xb > $slib_xe and $slib_yb < $slib_ye
86
!if $slib_xb > $slib_xe and $slib_yb < $slib_ye
71
  !distribute item -1,$slib_ss,1,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
87
  !distribute item 0,$slib_ss,0,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
72
!endif
88
!endif
73
!if $slib_xb > $slib_xe and $slib_yb > $slib_ye
89
!if $slib_xb > $slib_xe and $slib_yb > $slib_ye
74
  !distribute item -1,-($slib_ss),1,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
90
  !distribute item 0,$slib_ss,0,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
75
!endif
91
!endif
76
!if $slib_xb > $slib_xe and $slib_yb = $slib_ye
92
!if $slib_xb > $slib_xe and $slib_yb = $slib_ye
77
  !distribute item -1,$slib_ss,1,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
93
  !distribute item 0,$slib_ss,0,$slib_ss into slib_signxb,slib_signyb,slib_signxe,slib_signye
78
!endif
94
!endif
79
!if $slib_xb = $slib_xe and $slib_yb > $slib_ye
95
!if $slib_xb = $slib_xe and $slib_yb > $slib_ye
80
  !distribute item $slib_ss,0,$slib_ss,0 into slib_signxb,slib_signyb,slib_signxe,slib_signye
96
  !distribute item $slib_ss,0,$slib_ss,0 into slib_signxb,slib_signyb,slib_signxe,slib_signye
81
!endif
97
!endif
82
!if $slib_xb = $slib_xe and $slib_yb < $slib_ye
98
!if $slib_xb = $slib_xe and $slib_yb < $slib_ye
Line 110... Line 126...
110
  !set slib_h=$[min($slib_s,$slib_b)]
126
  !set slib_h=$[min($slib_s,$slib_b)]
111
!else
127
!else
112
  !if $slib_pos issametext down
128
  !if $slib_pos issametext down
113
    !set slib_h=$[-min($slib_s,$slib_d)]
129
    !set slib_h=$[-min($slib_s,$slib_d)]
114
  !endif
130
  !endif
115
!endif
131
!endif
116
 
132
 
117
!!--- determination XC,YC
133
!!--- determination XC,YC
118
 
134
 
119
!if $[abs(($slib_xb-$slib_xe))] < 1.E-6
135
!if $[abs(($slib_xb-$slib_xe))] < 1.E-6
120
  !set slib_xc=$[$slib_xb+$slib_h]
136
  !set slib_xc=$[$slib_xb+$slib_h]
121
  !set slib_yc=$slib_ym
137
  !set slib_yc=$slib_ym
122
!else
138
!else
123
  !set slib_r=$[($slib_ye-($slib_yb))/($slib_xe-($slib_xb))]
139
  !set slib_r=$[($slib_ye-($slib_yb))/($slib_xe-($slib_xb))]
124
  !set slib_xc=$[-($slib_h*$slib_r/(1+($slib_r)^2)^0.5) + (($slib_xb+$slib_xe)/2)]
140
  !set slib_xc=$[-($slib_h*$slib_r/(1+($slib_r)^2)^0.5) + (($slib_xb+$slib_xe)/2)]
125
  !set slib_yc=$[($slib_h/((1+($slib_r)^2)^0.5)) + (($slib_yb+$slib_ye)/2)]
141
  !set slib_yc=$[($slib_h/((1+($slib_r)^2)^0.5)) + (($slib_yb+$slib_ye)/2)]
126
!endif
142
!endif
127
 
143
 
128
slib_out=$slib_xc,$slib_yc,$slib_xy
144
slib_out=$slib_xc,$slib_yc,$slib_xy
-
 
145
 
-
 
146
 
-
 
147
!!for debug
-
 
148
!!!slib_out=!exec canvasdraw\
-
 
149
!!!size 400,400\
-
 
150
!!!xrange $(slib_zone[1,2])\
-
 
151
!!!yrange $(slib_zone[3,4])\
-
 
152
!!!grid 1,1,grey\
-
 
153
!!!linewidth 4\
-
 
154
!!!points red, $slib_xyinitial\
-
 
155
!!!linewidth 1\
-
 
156
!!!curvedarrows blue,$(slib_out[3,4,1,2,5,6])
-
 
157