我正在使用 3D PDB 坐标。我首先使用 numpy.linalg.lstsq 来求解最小二乘方程,基本上给了我平面的系数(我认为)。我可以使用 matplotlib 查看飞机,它似乎是正确的。我希望能够沿最小二乘解决方案给出的平面平移我的 3D 坐标。例如,我希望能够在新平面的 (X,Y) 上平移点。将点旋转到 (0,0,1) 为法线的平面上会更容易吗?
问问题
1578 次
1 回答
0
如果我理解你的问题是正确的,那么你有一个固定点,并希望将它移动到你有法线向量的平面上。假设您的法线向量 n 是 (0,0,1),而您的点 p 是 (1,1,1)。如果我们想留在平面上,我们的平移向量 t 必须垂直于法线向量。(n*t=0) 其中 * 表示标量积。你说你想保持 z 不变,所以我们设置 t_z = 0。然后假设你想将你的点移动 t_x = 1。现在你只需要解方程:0*1+0*t_y+1*0= t_y 的 0 在这种情况下是任意的,因为方程已经是 0。所以 t_x = 1 和 t_z = 0 的平移向量是 t = (1,t_y,0)。在一般情况下,您只需根据需要修复尽可能多的 t 坐标,然后用 n 计算剩余的坐标t=0 方程。这应该不难实现。所以一句话:只要平移向量垂直于您的法线向量(n t = 0),您就保持在同一平面上。
于 2016-02-09T11:49:08.483 回答