如果我有一条以极坐标给出的二维线(即距原点的 rho 距离和距 x 轴的 theta 角),我如何确定点位于直线的哪一侧?具体来说,我将如何取两个点并确定它们是在这条线的同一侧还是相反侧?
谢谢!
如果我有一条以极坐标给出的二维线(即距原点的 rho 距离和距 x 轴的 theta 角),我如何确定点位于直线的哪一侧?具体来说,我将如何取两个点并确定它们是在这条线的同一侧还是相反侧?
谢谢!
我知道你有你的线,说 rho 是你的线与 x 轴的交点,而 theta 是你的线和 x 轴之间的角度。
然后,您的线路的方程式将显示为
f(x) = (x-rho)*tan(theta)
要确定点 (x0,y0) 是否在该线上方,请检查是否
f(x0) = (x0-rho)*tan(theta) > y0
检查它是否在线检查
f(x0) = (x0-rho)*tan(theta) < y0
但请注意,如果 theta= 90°、270°,此方法将失效。但在这种情况下,您只需检查 x0 是大于还是小于 rho 就很容易了。
您能否获取两个提供的点并计算它们相对于 theta 的角度?
为了争论起见,说您的 2D 线在 (3,3) 处结束;
二维线:坐标:(3,3)
半径:3 * √2
Theta:0.79 弧度
第 1 点:
坐标:(3,4)
半径:5
Theta:Arcsin(4/5) = 0.92 弧度
第 2 点:
坐标:(3,1)
半径:√10
Theta:Arcsin(2/√10) = 0.68 弧度
Point 1 的 Theta 大于 2D Line;它在一个不同的方面。点 2 小于 2D 线;它在另一边。
希望这可以帮助!:)
这样的线有方程:
-x*cos(theta)+y*sin(theta)-rho=0 [1]
从点 (x0, y0) 到这条线的距离是
Dist = -x0*cos(theta)+y0*sin(theta)-rho [2]
重要的事情:Dist 的符号取决于点位于直线的哪一侧(当该点和坐标原点位于直线的不同侧时为正,否则为负)。
因此,计算和比较两个所需点的 [2] 表达式的符号就足够了