numpy opencv从A点画一个指向B的固定长度的箭头

iibxawm4  于 2023-03-08  发布在  其他
关注(0)|答案(2)|浏览(109)

我想画一个箭头,用opencv,它从一个点(X,Y)指向一个点(X2,Y2),但我希望它总是有一个固定的大小,而不管到第二个点的距离。

OpenCV的箭头绘制功能总是绘制连接两个点的箭头,所以我尝试使用一些Angular 、正弦和余弦的数学公式,但我不是很清楚。

crcmnpdw

crcmnpdw1#

可以将参数化形式用于直线的表达式。

X = X1 + t*(X2-X1)
Y = Y1 + t*(Y2-Y1)

其中t是所需箭头的标准化长度。t=0 -〉X,Y=X1,Y1和t=1 -〉X,Y= X2,Y2。如果t小于1,则X,Y位于两点之间的直线上。如果t大于1,则X,Y位于两点之间的延长线上,且X,Y超过X2,Y2。
所以在Python OpenCV中使用这些方程和cv2.arrowedLine()。

pod7payv

pod7payv2#

这只是数学。
你要做的就是把方向矢量缩放到你的固定长度。

  • 方向向量D=B-A
  • 缩放后的结果D_scaled=D*(固定长度/|* * D**|)
  • 箭头尖端T=A+D_缩放

绘制允许AT

相关问题