[英]Finding point perpendicular to two intersecting lines in 3D
我在3D中有兩條線(L1, L2)
。
L
具有以下開始和結束坐標: P1(x1, y1, z1)
和P2(x2, y2, z2)
。
L2
具有P3(x3, y3, z3)
和P2(x2, y2, z2)
。 注意L1
和L2
的P2
如何相同:這意味着它們在此特定點相交。
現在,我想找到與P2任意距離的點P(x,y,z)
,該直線(P,P2)
垂直於放置點(P1,P2,P3)
平面。
叉積將以偽代碼為您提供一個與其他兩個向量描述的平面垂直的向量:
normal = cross(normalize(P1-P2), normalize(P3-P2))
由於您已將P2
定義為交點,因此您只需將法線向量添加到P2
即可得到垂直點。
叉積是計算相對於兩條線的垂直度的方法。 您需要對您的線參數進行矢量處理,簡單的方法是這樣的:
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的距離是按照定義(叉積的工作方式)到平行線圖的面積(兩條線是側面)的距離,我找到了一個鏈接來說明:
歸一化第三個向量將使距P2的距離等於1。
如果您有任何線AB,則任意點C將始終垂直於AB IFF三角形ABC的角度不大於π/ 2
這意味着在直線AB上總會有點D ,使得CD垂直於AB
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.