Halcon中已知一条直线计算它的垂线与延长线

本文详细介绍了一种生成垂线和延长线的算法过程。首先,通过定义直线的起始和终止点,计算直线的角度和中点。接着,利用角度和中点信息,生成与原直线垂直的垂线及方向相反的延长线。文章提供了具体实现步骤和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 生成垂线

gen_image_const (Image, 'byte', 1000, 1000)
********************生成一条直线************************
Row1:=100
Col1:=500
Row2:=500
Col2:=100
gen_region_line (Line, Row1, Col1, Row2, Col2)

*计算该直线的角度
line_orientation (Row1, Col1, Row2, Col2,Phi)

*计算该直线的中点
RowM:=(Row1+Row2)/2
ColM:=(Col1+Col2)/2

*********************生成垂线*************************
*垂线长度
LineLength:=200(不精确)
*起点
RowStart := RowM-cos(Phi)*LineLength
ColStart := ColM-sin(Phi)*LineLength
*终点
RowEnd := RowM+cos(Phi)*LineLength
ColEnd := ColM+sin(Phi)*LineLength
gen_region_line (Line1, RowStart, ColStart, RowEnd, ColEnd)
  • 生成延长线

gen_image_const (Image, 'byte', 1000, 1000)
********************生成一条直线************************
Row1:=100
Col1:=500
Row2:=500
Col2:=100
gen_region_line (Line, Row1, Col1, Row2, Col2)

*获取该直线的位置信息
line_position (Row1, Col1, Row2, Col2, RowCenter, ColCenter, Length, Phi)

*********************生成延长线***********************
*延长线长度(不精确)
LineLength:=200
*起点
RowStart := RowCenter-cos(Phi+1.5708)*LineLength
ColStart := ColCenter-sin(Phi+1.5708)*LineLength 
*终点
RowEnd := RowCenter-cos(Phi-1.5708)*LineLength
ColEnd := ColCenter-sin(Phi-1.5708)*LineLength

gen_region_line (Line2, RowStart, ColStart, RowEnd, ColEnd)

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的路飞桑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值