特定の 3d ベクトルを中心に一連の 3d ベクトルを回転させるために使用できる数式は何ですか?
サード パーティのライブラリであるMath.NET Iridiumを使用して回転を計算しようとしていますが、どの数式または数学的概念を使用すればよいかわかりません。ご覧のとおり、数学は私の得意分野ではないため、ライブラリが必要です。
System.Windows.Shapes.Polyline
PS: 標準を使用しようとしましたSystem.Windows.Media.RotateTransform
が、回転はレンダリング時にのみ適用されるようです (間違っている場合は修正してください)。を適用した直後に、回転した点の位置を知る必要がありますRotateTransform
。
public static XYZ rotateXYZ(XYZ pnt)
{
Polyline polyline = new Polyline();
polyline.Points.Add(new Point(pnt.X, pnt.Y)); //, pnt.Z));
System.Windows.Media.RotateTransform rotateTransform = new System.Windows.Media.RotateTransform(projectRotation, pnt.X, pnt.Y);
polyline.RenderTransform = rotateTransform;
return new XYZ(polyline.Points[0].X, polyline.Points[0].Y, pnt.Z); // the points coordinates are the same - not rotated
}