- 我有一個
Plane
(普通,d)和Vector3
點(X,Y,Z)。 - 我需要將平面轉換到該點的X距離。我怎麼做?
我想出這個..如何將平面轉換爲X距離的點?
plane = Plane.Transform(plane, Matrix.CreateTranslation(
但找不出什麼的地方在那裏。它必須是點積,Plane.Normal
和我的Vector3
。
編輯:
我想這一點。
public static Plane MoveTo(this Plane p, Vector3 point, float distance)
{
Vector3 planeVector = p.Normal * p.D;
Matrix matrix = Matrix.CreateTranslation(Vector3.Normalize(planeVector)) *
distance * Math.Sign(Vector3.Dot(planeVector, point - planeVector))
return Plane.Transform(p, matrix);
}
如果有人認爲這是錯誤或錯誤的,請注意。
你有沒有檢查MSDN? http://msdn.microsoft.com/en-us/library/windows/desktop/bb281689(v=vs.85).aspx – ABH 2012-04-13 07:03:03
@hamad不,我沒有,但我用同樣的方法。我只需要一種方法。 – AgentFire 2012-04-13 07:19:10
那它會對你有用嗎?創建一個新的矩陣,並將其傳遞給Plane.Transform() – ABH 2012-04-13 07:23:23