我在3D中有两行(L1, L2)
。
L
具有以下起点和终点坐标:P1(x1, y1, z1)
和P2(x2, y2, z2)
。
L2
有P3(x3, y3, z3)
和P2(x2, y2, z2)
。请注意L1
和L2
的{{1}}是如何相同的:意味着它们在此特定点相交。
现在我想在距离P2的任何距离处找到一个点P2
,P(x,y,z)
线垂直于放置点(P,P2)
的平面。
答案 0 :(得分:1)
cross product将为您提供由两个其他向量描述的平面的垂直向量,伪代码:
normal = cross(normalize(P1-P2), normalize(P3-P2))
由于您已将P2
定义为交叉点,因此您只需将此法线向量添加到P2
即可获得垂直点。
答案 1 :(得分:1)
交叉积是计算相对于两条线的垂直度的方法。你需要制作你的线参数的矢量,简单的方法就是:
vecL1 = (x1-x2, y1-y2, z1-z2) and
vecL2 = (x3-x2, y3-y2, z3-z2)
交叉产品你可以谷歌如何计算,但在这种情况下:
//Replacing the new x,y,z's with i, j, k to avoid naming confusion.
vecL3 = vecL1 x vecL2 = (j1*k2 - j2*k1, k1*i2 - k2*i1, i1*j2 - j1*i2)
现在每个定义的叉积是一个新的向量(线),它严格垂直于你用来计算它的两条线/向量。但是矢量缺少位置,所以你需要在这个矢量上添加交点才能找到一些点。
//i3, j3, k3 being the third vector's parameters
P3(i3+x2, j3+y2, k3+z2)
PS:从P2到P3的距离是按照定义(交叉产品如何工作)到两条线所在的平行四边形区域的距离,我找到了一个链接来说明:
归一化第3个向量将使距离等于P2。
答案 2 :(得分:0)
如果您有任何行 AB ,则任意点 C 将始终垂直于 AB IFF三角形 ABC 没有大于π/ 2的角度
这意味着 AB 上始终会有 D 点, CD 与 AB 垂直