3d 寻找非线性点的最简单方法

3d 寻找非线性点的最简单方法,3d,geometry,3d,Geometry,我在三维空间中有一条线:(x1,y1,z1),(x2,y2,z2) 我需要在任何平面上找到保证不与这条线共线的任何点。 找到这样一个点最简单的方法是什么?你需要一些非共线向量来建立所需的点 有一种方法可以获得垂直向量: make vector d = (x2-x1, y2-y1, z2-z1) choose component with the largest magnitude (say dy) and component with the second magnitude (say dx)

我在三维空间中有一条线:(x1,y1,z1),(x2,y2,z2) 我需要在任何平面上找到保证不与这条线共线的任何点。
找到这样一个点最简单的方法是什么?

你需要一些非共线向量来建立所需的点

有一种方法可以获得垂直向量:

make vector d = (x2-x1, y2-y1, z2-z1)
choose component with the largest magnitude (say dy)
and component with the second magnitude (say dx)
make the third (smallest) component zero
exchange two larger components and negate the largest one
p = (-dy, dx, 0)
它与源1垂直(注意点积为零
p.dot.d==0


将此向量添加到任何端点以获得非共线点。

随机点与给定直线共线的概率非常低。如果选择的点恰好是共线的(这很容易检查)。您可以拾取一个新的随机点,也可以只在切线方向上添加一个微小的轻推(如果一致随机不是那么重要)。