Halcon生成中垂线的两种方式

画圆去生成垂线

1. 过点A(若是中垂线则为线段中点)以任意半径画弧,交直线l于点B和点C

2:分别以点B和点C为圆心,半径为任意大于AB的线段作弧,并交于点D

3:连接AD作直线i,该直线I为直线l过点A的垂线

点在直线外时:

已知直线m和直线上一点E作过点E垂直于直线l的直线

1:以点E为圆心,任意大于点E到直线距离的长度为圆坐弧,交直线i于点F,G

2:以点F、G为圆心,任意大于线段EF长度一半的线段作弧,并交于点K

3:连接直线EK即是过点E垂直于直线L的直线

这个可以根据一步步的方法,利用halcon算子去得到中垂线

根据角度去计算垂线

1.得到线段的中点A、角度、长度

2. 通过角度计算得到中垂线的两点,生成即可得到中垂线

该方法的具体代码如下:


HTuple hv_RowCenter4 = null, hv_ColCenter4 = null;
HTuple hv_Length4 = null, hv_Phi4 = null;
HTuple hv_RowStart = null, hv_ColStart = null;
HTuple hv_RowEnd = null, hv_ColEnd = null;

HOperatorSet.LinePosition(hv_Row14, hv_Column14, hv_Row21, hv_Column21, out hv_RowCenter4,out hv_ColCenter4, out hv_Length4, out hv_Phi4);
HTuple hv_LineLength = hv_Length4;   

//设定中垂线的长度,不除2则会是当前线段长度的两倍
hv_LineLength = hv_Length4 / 2;
//中垂线起点
hv_RowStart = hv_RowCenter4 - ((hv_Phi4.TupleCos()) * hv_LineLength);
hv_ColStart = hv_ColCenter4 - ((hv_Phi4.TupleSin()) * hv_LineLength);
//中垂线终点
hv_RowEnd = hv_RowCenter4 + ((hv_Phi4.TupleCos()) * hv_LineLength);
hv_ColEnd = hv_ColCenter4 + ((hv_Phi4.TupleSin()) * hv_LineLength);
//生成中垂线
HOperatorSet.GenRegionLine(out out_Line1, hv_RowStart, hv_ColStart, hv_RowEnd, hv_ColEnd);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值