沿轴旋转框

时间:2014-03-17 10:33:46

标签: c# directx mdx

我有4个盒子,位置如下图所示:

enter image description here

现在我想沿着Y轴(左手,红线)转动它们。

我使用Managed DX,我的第一个想法是对每个盒子说:

device.Transform.World = Matrix.RotationY(Geometry.DegreeToRadian(2)) * BoxPosition;

这适用于顶部和底部框。但是左边和右边的盒子沿着Y轴旋转,这是另一个。有人可以帮助我如何在正确的Y轴(不是全局轴)上打开它们吗?整个框的位置在右侧坐标中:

x = 12
y = 0
z = 0

1 个答案:

答案 0 :(得分:1)

反过来说:

device.Transform.World =   BoxPositionWithinGroup
                         * Matrix.RotationY(Geometry.DegreeToRadian(2))
                         * GroupPositionInWorld;

其中GroupPositionInWorldMatrix.Translation(12, 0, 0)BoxPositionWithinGroup描述了该组中的“本地位置”(相对于群组位置)。

如果您想了解有关DirectX和矩阵的更多信息,请查看my blog post