C#+directX中,mesh对象的世界矩阵如何转换?怎样让mesh对象永远只沿着自己局部坐标系的正Z方向移动?

以飞机转弯的效果为例:飞机前进即移动,不论飞机的局部坐标系怎么旋转,都永远只能往自己局部坐标系的+Z方向移动。1、飞机先沿局部坐标系的Z轴旋转90度(侧倾姿态),2、再沿... 以飞机转弯的效果为例:
飞机前进即移动,不论飞机的局部坐标系怎么旋转,都永远只能往自己局部坐标系的+Z方向移动。
1、飞机先沿局部坐标系的Z轴旋转90度(侧倾姿态),
2、再沿局部坐标系的X轴顺时针旋转(拉伸机头),
3、沿Z轴逆时针旋转90度(恢复飞行姿态)
在绘制模型前用device.Transform.World设置世界矩阵的话,各矩阵如何计算?数学底子太烂研究矩阵几天了还是没眉目。
Device.Transform.World = Matrix.RotationX(angleX)*Matrix.RotationY(angleY)*Matrix.RotationZ(angleY)*Matrix.Translation(X,Y,Z)
旋转矩阵只有放在第一位的X轴是正确的效果,后面两个Y Z轴的旋转它只按世界坐标的YZ方向旋转(正确效果应该是旋转的话,永远只沿着自己的坐标系的各轴旋转);
Matrix.Translation(X,Y,Z)中直接赋值的话,(X,Y,Z)也是按着世界坐标的方向,正确效果应该是沿着局部坐标系的Z轴移动,想过应该可以通过前面的旋转角度计算出局部坐标系中Z方向在世界坐标系的位置,但不知道该怎么计算。求前辈们点拨。谢谢!
展开
 我来答
双落人过我0M
2016-10-15 · 超过13用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:17.6万
展开全部
使用Mesh.FormFile()和Mesh.FromStream()这两个方法可以读入外部的.X文件具体请参考:ManagedDirectX+C#开发(入门篇)(七)1666574
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式