在Managed DirectX中旋转

时间:2014-01-02 03:23:16

标签: .net matrix rotation directx managed-directx

我想要一个四边形(1)围绕Y轴旋转四边形,(2)围绕四边形的X轴旋转它。问题是它一个接一个地旋转,所以它围绕Y轴旋转然后围绕世界的 X轴旋转,而不是四边形 X轴。

基本上我想做的是围绕它的X轴和Y轴旋转四边形(随机),最后我仍然希望它的两个底部顶点有Y = 0.

这是我现在正在使用的代码:

_game._device.Transform.World = Matrix.RotationYawPitchRoll(_rotationValues(i).X, _rotationValues(i).Y, 0) * Matrix.Translation(_translationValues(i))
_game._device.DrawPrimitives(PrimitiveType.TriangleList, 0, 4)
_game._device.Transform.World = Matrix.Identity

1 个答案:

答案 0 :(得分:0)

我修好了!我使用Matrix.RotationYawPitchRoll()Matrix.RotationX代替Matrix.RotationY方法。这是代码:

_game._device.Transform.World = Matrix.RotationX(_rotationValues(i).X) * Matrix.RotationY(_rotationValues(i).Y) * Matrix.Translation(_translationValues(i) + location)
_game._device.DrawPrimitives(PrimitiveType.TriangleList, 0, 4)
_game._device.Transform.World = Matrix.Identity