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);
}
誰かがこれを間違っている、または部分的に間違っていると考えている場合は、注意してください。