-2

如果我有一条以极坐标给出的二维线(即距原点的 rho 距离和距 x 轴的 theta 角),我如何确定点位于直线的哪一侧?具体来说,我将如何取两个点并确定它们是在这条线的同一侧还是相反侧?

谢谢!

4

3 回答 3

0

我知道你有你的线,说 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 就很容易了。

于 2012-05-03T17:30:33.043 回答
0

您能否获取两个提供的点并计算它们相对于 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 线;它在另一边。

希望这可以帮助!:)

于 2012-05-03T17:14:43.880 回答
0

这样的线有方程:

-x*cos(theta)+y*sin(theta)-rho=0 [1]

从点 (x0, y0) 到这条线的距离是

Dist = -x0*cos(theta)+y0*sin(theta)-rho [2]

重要的事情:Dist 的符号取决于点位于直线的哪一侧(当该点和坐标原点位于直线的不同侧时为正,否则为负)。

因此,计算和比较两个所需点的 [2] 表达式的符号就足够了

于 2012-05-04T04:16:17.690 回答