5

我知道如何检查一个点是否在 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);
4

3 回答 3

6

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

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

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

于 2011-02-18T16:21:25.253 回答
3

一个点永远不会在真实坐标的线上。您需要做的是计算到线最近点的距离,并确定这对您来说是否足够近。

于 2011-02-18T16:20:32.147 回答
0

一条线的方程是

v(t) = v0 + t*dir

v0直线上的某个点在哪里,dir它的方向是什么。只需检查您的点是否以足够的精度与该线性方程匹配

于 2011-02-18T16:23:17.697 回答