如果我在极坐标中给出了一条2D线(即距离原点的rho距离和距离x轴的θ角),我如何确定该点位于哪条线的哪一侧?具体来说,我如何取两个点并确定它们是在同一侧还是在这条线的两侧?
谢谢!
答案 0 :(得分:0)
您可以同时获取两个提供的点并计算它们相对于θ的角度吗?
为了论证而说你的2D线以(3,3)结束;
2D线:
Coord:(3,3)
半径:3 *√2
Theta:0.79弧度
第1点:
科德:(3,4)
半径:5
Theta:Arcsin(4/5)= 0.92弧度
第2点:
Coord:(3,1)
半径:√10
Theta:Arcsin(2 /√10)= 0.68弧度
点1的Theta大于2D线的θ;它在一个不同的方面。点2的值小于2D线的点;它在另一边。
希望这有帮助! :)
答案 1 :(得分: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。
答案 2 :(得分:0)
这条线有等式:
-x * cos(theta)+ y * sin(theta)-rho = 0 [1]
从点(x0,y0)到此线的距离为
Dist = -x0 * cos(theta)+ y0 * sin(theta)-rho [2]
重要的是:Dist的符号取决于点所在的线的哪一侧(当此点和坐标原点位于线的不同侧时为正,否则为负)。
因此,足以计算和比较两个需要点的[2]表达式的符号