您的位置:首页 > 编程语言 > C#

C#利用DirectX显示.x三维动画

2015-07-16 10:48 736 查看
C#利用DirectX显示.x三维动画

最开始在研究 四轴/捷联式惯性导航 的时候,想做个三维上位机来玩一下,经大师兄介绍一个阿莫上面帖子:

http://www.amobbs.com/forum.php?mod=viewthread&tid=3868706

帖子中的方法是利用solidworks画的三维模型导出XAML文件,然后用WPF进行渲染显示和控制。于是仿着这个方法,师兄用solidworks画了四轴,我用WPF做了软件,效果如下:



控制左下角三根条子可以进行旋转操作:



但是,后来发现,这里的旋转并不是我们所需要的Yaw,Pitch,Roll,也不是物体的体坐标x y z三个轴。(代码虽然是写着x y z,但是实测不是!有一个夹角是45°的,好奇怪。)

研究了许久,虽然把串口通信等功能都加上了,但是没有找到Yaw,Pitch,Roll和那三个旋转之间的关系,所以没搞下去了……

后来,了解到了DirectX 的3D动画功能!

初次参考到了:http://download.csdn.net/detail/acaic/1810027 里头就是通过用DirectX技术载入 .x 文件,然后按键盘的“上下左右”能控制动画。

机遇来了!熟悉的C#,而且有我们想要的YawPitchRoll以及四元素旋转方法……

然后,有了一些成果:http://www.amobbs.com/forum.php?mod=viewthread&tid=5546053

成果中的那个三维飞机动画是用官方DirectX SDK里头的 .x文件(里头还有很多其它.x文件),然后那支钢笔是我托同学用3DMAX画的,然后通过某插件,才导出的 .x 文件。

于是,问题来了, .x 文件不好弄呀~~不可能老托朋友帮我画帮我转换导出吧??

千辛万苦,找了好久将其它三维文件(例如STL)转化为  .x 文件的方法,终于找到了:
http://blog.csdn.net/lin381825673/article/details/46910725
于是,自己刚学的Solidworks能够排上用场了,自己能画什么,C#就能显示什么!



邪恶的源代码传送门:http://download.csdn.net/detail/lin381825673/8905119
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c# directx 三维动画