当前位置:主页   - 电脑 - 网站开发 - ASP.Net
MDX之平移与旋转(1)
来源:网络   作者:   更新时间:2012-08-09
收藏此页】    【字号    】    【打印】    【关闭

  本文示例源代码或素材下载

  简介==============================================

  做项目一年,虽然说没有学得很好,但一年来,自己学的东西也比较多,也有了一些经验,正如我前面说的现在没有事做就多写,等过两天就不会有这么多的时间了,项目一开始,那可就没有多少时间了。

  我做的那个项目是地质相关的项目,就会有一些必不可少的图形的显示,二维方面老师自己做的非常好了,但在3D方面大家都没有什么经验,就只有靠自己去摸索了,在自己摸索的过程中,最头疼的就是没有资料,在就是问别人没有一个人回答你,问了别人还被说成叫自己去按书一步一步敲例子,把人都气死,好了,我现在就将我在学习的时候遇到的两个困扰我两个月的问题写出来,供大家参考,也请大家多交流。

  说到平移,就不得不说到两种投影模式,一种是平行映射模式,另一种是透视投影模式。

  所谓平行投影模式,就是将模型上的每一点,都垂直投射到屏幕上,注意是直接。不考虑模型与屏幕的距离远近,投射在屏幕上时都与实际大小相同。而透视投影就与我们平时的视角比较接近,物体符合“近大远小”的视觉习惯。就是下图

                            MDX之平移与旋转(1)

  这一种形式就是我们在所有的现有资料中用的模式,是不是,可是大家有没有想过,如果我把投影模式换成平行方式会怎么样呢?

// 透视投影
device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, (float)this.Width / this.Height, min, max);
// 正交投影
device.Transform.Projection = Matrix.OrthoLH(this.Width, this.Height, min, max);

  这个也恰恰就是关键所在,只是换一下投影模式就可以了,达到非常好的平移效果,现在想想,原来为了达到eyeshot的那种鼠标移动的功能我足足看那种效果几个小时,现在想想却一分钱也不值,现在感谢林锐博士,因为就是看他的程序我才解决这个问题的,现在放上他的程序,注意在用的时候,一定要注意要选择平行投影模式,否则是不会达到我说的效果的。明天就写平移,那个可不是一下子就说的好的。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明