dev_update_off()dev_close_window()
Size :=500dev_open_window(0,0, Size, Size,'white', WindowHandle)* 创建随机点
X :=[25:50:Size]
Y :=15+0.4* X +0.001* X * X
Y := Y +40*rand(|Y|)* 显示随机点
gen_cross_contour_xld(Cross, Size - Y, X,15,rad(45))dev_set_color('blue')dev_display(Cross)* 解直线方程
*f(x)= kx + b
create_matrix(|X|,2,1.0, MatrixA)create_matrix(|X|,1, X, MatrixACol)set_sub_matrix(MatrixA, MatrixACol,0,0)create_matrix(|X|,1, Y, MatrixB)solve_matrix(MatrixA,'general',0, MatrixB, MatrixX)get_value_matrix(MatrixX,0,0, K)get_value_matrix(MatrixX,1,0, B)
Sequence :=[0:1200]
Distances := K * Sequence + B
* 显示拟合直线
gen_contour_polygon_xld(Contour, Size - Distances, Sequence)dev_set_color('green')dev_display(Contour)stop()
使用solve_matrix解曲线方程
dev_update_off()dev_close_window()
Size :=500dev_open_window(0,0, Size, Size,'white', WindowHandle)* 创建随机点
X :=[25:50:Size]
Y :=15+0.4* X +0.001* X * X
Y := Y +40*rand(|Y|)* 显示随机点
gen_cross_contour_xld(Cross, Size - Y, X,15,rad(45))dev_set_color('blue')dev_display(Cross)* 解曲线方程
*f(x)= a*x^2+ b*x + c
create_matrix(|X|,3,1.0, MatrixA)create_matrix(|X|,1, X, MatrixACol1)create_matrix(|X|,1, X * X, MatrixACol0)set_sub_matrix(MatrixA, MatrixACol1,0,1)set_sub_matrix(MatrixA, MatrixACol0,0,0)create_matrix(|X|,1, Y, MatrixB)solve_matrix(MatrixA,'general',0, MatrixB, MatrixX)get_value_matrix(MatrixX,0,0, A)get_value_matrix(MatrixX,1,0, B)get_value_matrix(MatrixX,2,0, C)
Sequence :=[0:1200]
Distances := A * Sequence * Sequence + B * Sequence + C
* 显示拟合曲线
gen_contour_polygon_xld(Contour, Size - Distances, Sequence)dev_set_color('green')dev_display(Contour)stop()
解平面方程
dev_update_off()dev_close_window()
Size :=500dev_open_window(0,0, Size, Size,'white', WindowHandle)* 创建随机点
X :=rand(1000)*100
Y :=rand(1000)*100
Z :=rand(|X|)*6* 解平面方程
*f(x,y)= ax + by + c
create_matrix(|X|,3,1.0, MatrixA)create_matrix(|X|,1, Y, MatrixACol1)create_matrix(|X|,1, X, MatrixACol0)set_sub_matrix(MatrixA, MatrixACol1,0,1)set_sub_matrix(MatrixA, MatrixACol0,0,0)create_matrix(|X|,1, Z, MatrixB)solve_matrix(MatrixA,'general',0, MatrixB, MatrixX)get_value_matrix(MatrixX,0,0, A)get_value_matrix(MatrixX,1,0, B)get_value_matrix(MatrixX,2,0, C)
PlaneX :=[]
PlaneY :=[]for I :=0 to 99 by 1
PlaneX :=[PlaneX,gen_tuple_const(100, I)]
PlaneY :=[PlaneY,[0:99]]
endfor
PlaneZ := A * PlaneX + B * PlaneY + C
* 三维显示
dev_open_window(0,0, Size, Size,'white', WindowHandle)gen_object_model_3d_from_points(X, Y, Z, ObjectModel3D1)gen_object_model_3d_from_points(PlaneX, PlaneY, PlaneZ, ObjectModel3D2)
PoseVis :=[-50,0,2000,80,0,0,0]visualize_object_model_3d(WindowHandle,[ObjectModel3D1, ObjectModel3D2],[], PoseVis, \
['point_size','color_0','color_1'],[2,'red','blue'], \
[],[],[], PoseOut)