簡體   English   中英

計算一條3D線單軸的交點

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM