我的问题与此问题非常相似:How to tell whether a point is to the right or left side of a line。
他们在两个点A,B和应该测试的第三个点Z之间定义了一条线。
我得到了一条由P点和角度a定义的线以及应该测试的第三点Z.显然我可以从角度和P计算第三点并使用他们的解决方案,但我希望有更好/更快的方式。
Z和Z'应注册为“以上”,Z''应注册为“在线下方”。
背景:我正在使用OpenCV编写C ++,目前我正在尝试理解检测到的旋转矩形之间的关系。
答案 0 :(得分:1)
你有两个向量 - 方向向量D =(sin(a),cos(a))和PZ。如果它们的交叉积为正,则Z位于左半平面,否则 - 位于右半平面。什么半平面被认为是“高于” - 取决于cos(a)符号。
Result = cos(a) * (sin(a) * PZ.Y - cos(a) * PZ.X) > 0