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
最开始在研究 四轴/捷联式惯性导航 的时候,想做个三维上位机来玩一下,经大师兄介绍一个阿莫上面帖子:
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#调用COM组件
- C#实现把指定数据写入串口
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#.NET获取拨号连接的宽带连接方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程
- C#托管堆对象实例包含内容分析
- C#实现按照指定长度在数字前补0方法小结
- C#虚方法的声明和使用实例教程
- C#获取文件夹及文件的大小与占用空间的方法
- C#定义简单的反射工厂实例分析
- C#数字图象处理之肤色检测的方法