Region之 线特征

1.line_orientatin(::RowBegin,RowEnd,ColEnd:Phi)
*计算直线的方向
2.line_position(::RowBegin,ColBegin,RowEnd,ColEnd:RowCenter,ColCenter,Lenght,Phi)
*计算线段的中心,长度,方向
3.angle_ll(::RowAl,ColumnAl,RowA2,ColumnA2,RowB1,ColumnB1,RowB2,ColumnB2:Angle)
*计算两直线的角度方向
4.gen_region_runs(:Region:Row,ColumnBegin,ColumnEnd:)
*作用:通过给定的行列生成区域region
5.boundary(Region:RegionBorder:BoundaryType:)
*求取区域region的边界
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'white', WindowID)
RowA1 := 255
ColumnA1 := 10
RowA2 := 255
ColumnA2 := 501
dev_set_color ('black')
disp_line (WindowID, RowA1, ColumnA1, RowA2, ColumnA2)
RowB1 := 255
ColumnB1 := 255
for i := 1 to 360 by 1
    RowB2 := 255 + sin(rad(i)) * 200
    ColumnB2 := 255 + cos(rad(i)) * 200
    disp_line (WindowID, RowB1, ColumnB1, RowB2, ColumnB2)
    angle_ll (RowA1, ColumnA1, RowA2, ColumnA2, RowB1, ColumnB1, RowB2, ColumnB2, Angle)
endfor
angle_ll.hdev列子(画圆)


gen_region_runs.hdev(鼠标事件)

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowID)
Button := 1
Rows := []
Cols := []
dev_set_color ('red')
dev_clear_window ()
while (Button == 1)
    * Click with the mouse to specify start points of runs
    * To quit loop use right mouse button
    get_mbutton (WindowID, Row, Column, Button)
    Rows := [Rows,Row]
    Cols := [Cols,Column]
    disp_circle (WindowID, Row, Column, 3)
endwhile
dev_set_color ('green')
gen_region_runs (Region, Rows, Cols, Cols + 40)
dev_display (Region)

猜你喜欢

转载自blog.csdn.net/zxl2712028/article/details/80205032