【问题标题】:Rotating in Managed DirectX在托管 DirectX 中旋转
【发布时间】:2014-01-02 03:23:16
【问题描述】:

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

基本上我想要做的是围绕它的 X 和 Y 轴(随机)旋转四边形,最后我仍然希望它的 2 个底部顶点具有 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

【问题讨论】:

    标签: .net matrix rotation directx managed-directx


    【解决方案1】:

    我修好了!我使用Matrix.RotationXMatrix.RotationY 而不是Matrix.RotationYawPitchRoll() 方法。代码如下:

    _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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多