检查点是否在3d线上?

时间:2011-02-18 16:18:05

标签: 3d geometry points angle

我知道如何检查点是否在2d线上,但我想在3D中执行此操作。有什么想法吗?

        // slope from point 1 to point 3
        var p13:Number = (Math.atan2 (end.x - start.x, end.y - start.y)) * toDegrees;

        // slope from point 1 to point 2 -- matches?
        var p12:Number = (Math.atan2 (point.x - start.x, point.y - start.y)) * toDegrees;

        return Math.round(p12) == Math.round(p13);

3 个答案:

答案 0 :(得分:6)

标准化向量。检查法线是否匹配。

找到最大值,将所有其他值除以该值,以便得到向量法线。

一行上的任何一点都应该具有相同的矢量法线。

答案 1 :(得分:3)

一个点永远不会在真正的坐标线上“上”。您需要做的是计算到closest point to the line的距离,并确定它是否足够接近您。

答案 2 :(得分:0)

一条线的等式是

v(t)= v0 + t * dir

v0在一条线上的某个点,而dir是它的方向。只需检查您的点是否与此线性方程匹配,并具有足够的精度