[英]Calculating the intersection point of a 3D line single Axis
我正在嘗試計算如何計算 3D 線(兩個 3D 點)和軸相交的位置。
在我的例子中,我試圖計算 3D 點與 Z 軸的交點。
可以說我給這條線的坐標
Point1.X = 0
Point1.Y = 0
Point1.Z = 0
Point2.X = 50
Point2.Y = 50
Point2.Z = 50
我想計算 Z 15 處的相交,我將如何完成這個?
我考慮過使用插值,但在這里似乎效率很低,我看過其他帖子和數學方程式,但我對它們的理解還不足以將它們實現為可用代碼。
假設你有向量 A(比如你的 point1)和 B,那么通過這兩個點的直線 L 可以定義為
L(k) = A + k(B - A)
這樣 L(0) = A 和 L(1) = B。假設你想找到哪里
L(k).z = z_0
那么你需要解決
A.z + k(B.z - A.z) = z_0
所以線 L 與平面 z = z_0 相交於
k = (z_0 - A.z) / (B.z - A.z)
如果 (Bz - Az) 為零,則它要么不在任何地方與平面 z = z_0 相交,要么在平面中的任何地方。
lambda = ( Point1.Z - Z ) / ( Point1.Z - Point2.Z )
Point3.X = Point1.X + lambda * (Point2.X - Point1.X)
Point3.Y = Point1.Y + lambda * (Point2.Y - Point1.Y)
Point3.Z = Z
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.