dev_get_window (WindowHandle)
while (true)
get_mbutton_sub_pix (WindowHandle, Row1, Column1, Button)
get_mbutton_sub_pix (WindowHandle, Row2, Column2, Button)
get_mbutton_sub_pix (WindowHandle, Row3, Column3, Button)
* get_mposition_sub_pix (WindowHandle, Row4, Column4, Button1)
get_mbutton_sub_pix (WindowHandle, Row4, Column4, Button)
p1:=[Row1,Column1]
p2:=[Row2,Column2]
p3:=[Row3,Column3]
p4:=[Row4,Column4]
Row:=[]
Col:=[]
t:=0.0
for Index := 0 to 10 by 1
t:=Index*0.1
lerp (p1, p2, t, A)
lerp (p2, p3, t, B)
lerp (p3, p4, t, C)
lerp (A, B, t, D)
lerp (B, C, t, E)
lerp (D, E, t, F)
Row:=[Row,F[0]]
Col:=[Col,F[1]]
endfor
gen_cross_contour_xld (Cross1, Row1,Column1 , 6, 0.785398)
gen_cross_contour_xld (Cross2, Row2,Column2 , 6, 0.785398)
gen_cross_contour_xld (Cross3, Row3,Column3 , 6, 0.785398)
gen_contour_polygon_xld (Contour, Row, Col)
set_window_param (WindowHandle, 'flush', 'false')
dev_clear_window ()
dev_display (Cross1)
dev_display (Cross2)
dev_display (Cross3)
dev_display (Contour)
flush_buffer (WindowHandle)
endwhile
lerp函数定义:
*线性插值
if (t<0 or t>1)
throw (['t值超出范围'])
endif
x:=[]
y:=[]
x:=(1-t)*p1[0]+t*p2[0]
y:=(1-t)*p1[1]+t*p2[1]
p3:=[x,y]
return ()