在我的代码中使用HelixToolkit
我有一个旋转矩阵(3x3),如:
UX VX WX
UY VY WY
UZ VZ WZ
我想要转动GeometryModel3D
。我找到了RotateTransform3D
,我需要一个带角度的Vector3D:
// Create and apply a transformation that rotates the object.
RotateTransform3D myRotateTransform3D = new RotateTransform3D();
AxisAngleRotation3D myAxisAngleRotation3d = new AxisAngleRotation3D();
**myAxisAngleRotation3d.Axis = new Vector3D(0, 3, 0);
myAxisAngleRotation3d.Angle = 40;**
myRotateTransform3D.Rotation = myAxisAngleRotation3d;
// Add the rotation transform to a Transform3DGroup
Transform3DGroup myTransform3DGroup = new Transform3DGroup();
myTransform3DGroup.Children.Add(myRotateTransform3D);
//ajoute the transformation to the model
model3D.Transform = myTransform3DGroup;
如何根据旋转矩阵计算向量和角度?
答案 0 :(得分:1)
如果您已经计算了矩阵,则可以将其与一般MatrixTransform3D一起使用。只需将矩阵的值设置为计算值即可。
但是,如果您真的想要计算旋转轴和角度,则必须求解线性方程组。看看the Wikipedia entry。但是,你的计算量远远超过实际需要。