2D几何:如何检查点是否在角度内

时间:2009-07-22 17:50:03

标签: geometry 2d point

我在2D中有以下几何问题:

我有一个点,我从该点投射一个由方向和角度给出的无限角度(2D圆锥)。 (点和方向形成一个矢量,并且每个角度的一半形成二维锥体)

现在我想检查2D中的另一个点是否在此锥形区域内或外部。

如何实现这一目标? 谢谢!

4 个答案:

答案 0 :(得分:12)

计算从圆锥中心到查询点的向量。将矢量标准化为长度为1,取锥体的中心矢量并将其标准化为长度1 现在在矢量之间取点积。两个归一化向量之间的点积是它们之间角度的余弦。获取点积的arccos(大多数语言中为acos),您将得到角度。将此角度与锥体角度(描述中的半角度)进行比较。如果它更低,那么有问题的点就在锥体内。

这适用于2D和3D。

答案 1 :(得分:1)

使用方向的arctg计算方向的角度。从检查点中减去原点。计算它的角度(再次通过标准化矢量的arctg),并检查它是否位于角度边界内。

答案 2 :(得分:1)

我想说最好的方法是将点投影到垂直于锥体方向的2D表面上。然后计算同一平面和点之间的正交距离。最后,您知道该高度处的圆锥宽度,因此您可以看到该点是否在该宽度之外。

答案 3 :(得分:1)

让从原点到指定点的矢量与穿过中心的法线成一个角度A.如果角度A小于锥体的半角,则它位于其他外部。