我想画一个箭头,用opencv,它从一个点(X,Y)指向一个点(X2,Y2),但我希望它总是有一个固定的大小,而不管到第二个点的距离。
OpenCV的箭头绘制功能总是绘制连接两个点的箭头,所以我尝试使用一些Angular 、正弦和余弦的数学公式,但我不是很清楚。
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()。
pod7payv2#
这只是数学。你要做的就是把方向矢量缩放到你的固定长度。
绘制允许A至T。
2条答案
按热度按时间crcmnpdw1#
可以将参数化形式用于直线的表达式。
其中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()。
pod7payv2#
这只是数学。
你要做的就是把方向矢量缩放到你的固定长度。
绘制允许A至T。