1
給定一個3D平面及其上的任意點,我想要考慮原點(0,0,0)
的一個新的基礎,有可能:(A)從這個信息定義一個基礎? (B)創建一個轉換矩陣,允許我在世界空間和新基礎之間進行轉換?如何從3D平面和已知原點計算新的基礎(變換矩陣)?
我可以假設轉換是仿射的。
非常感謝!
給定一個3D平面及其上的任意點,我想要考慮原點(0,0,0)
的一個新的基礎,有可能:(A)從這個信息定義一個基礎? (B)創建一個轉換矩陣,允許我在世界空間和新基礎之間進行轉換?如何從3D平面和已知原點計算新的基礎(變換矩陣)?
我可以假設轉換是仿射的。
非常感謝!
簡短的回答是肯定的,但既然你只有一架飛機,新基準的方向將是任意的。
比方說你有一個點ķ是位於飛機P,你想點ķ爲您的原點。您有P =(N,d)其中N是歸一化平面法線和d是從原點到飛機的距離。
要在這個平面確定與任意方向正交基 定義3個載體右[R,同比增長ü和正常ñ
我們已經有ñ這只不過是正常的平面
U = (0,1,0)
// If U is pointing in almost the same direction as N, change it
if (U.N > 0.7071) U = (0, 0, 1);
R = normalise (U x N)
U = normalise (N x R) // U was not orthonormal
現在定義的3×3變換矩陣中號其中矩陣的3行分別是R,U和N.
R
M = (U)
N
現在讓我們假設你想在你的平面上的點p進行改造,以點P」。
p' = M (p - k)
如果你想要做的這一切都是一個矩陣可以M和平移矢量-k合併成一個4x4矩陣均勻。 注:
HTH