- 我得到一个
Plane
(Normal, d) 和一个Vector3
点 (x, y, z)。 - 我需要将平面平移到 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);
}
如果有人认为这是错误的或部分错误的,请注意。