绕Z轴旋转时旋转矩阵是否错误?

时间:2015-02-12 04:37:23

标签: c# wpf math matrix rotation

我正在跟踪字形,并尝试在它们上面显示一个3D对象。 他们返回一个TransformationMatrix,猜测他们的方向。这在AForge Gratf Glyph Recognition Studio中很有效。 还有一个 blog-entry on the topic here

enter image description here

一旦我围绕Z轴旋转字形,我的旋转方向似乎就会消失。 为什么在围绕Z轴旋转字形180°时,所有X轴和Y轴旋转都会反映出来?

我制作了一个简短的视频,说明了我的问题: https://www.youtube.com/watch?v=mN1erbJr9JY&feature=youtu.be

  Matrix4x4 gm = glyphData.TransformationMatrix;

  // turn left-handed matrix in right-handed       
  Matrix3D rightHanded = new Matrix3D(gm.V00, gm.V02, gm.V01, 0,
                                              gm.V20, gm.V22, gm.V32, 0,
                                              gm.V10, gm.V12, gm.V11, 0,
                                              gm.V30, gm.V32, gm.V31, 1);

MatrixTransform3D _transform3D = new MatrixTransform3D(rightHanded);
_transformGroup.Children.Add(_transform3D);
Cube3D.Transform = _transformGroup;  // add it to ModelVisual3D

这是XAML文件中的场景设置:

  <Viewport3D ClipToBounds="False">
  <Viewport3D.Camera>        
       <PerspectiveCamera LookDirection="0,0,1" UpDirection="0,1,0" Position="0,0,-30" />
   </Viewport3D.Camera>

   <ModelVisual3D x:Name="Cube3D"   >
   ...

0 个答案:

没有答案