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

  昨天我发过了平移的一篇文章,就有人说都有现存的算法存在了,不错,我要提醒一下,我并不是什么技术高超的学者,或者说是某某研究员,那么我的算法怎么来呢,有人说过天下文章一大抄,看你会抄不会抄,不知道大家有没有去过那些论文网站,有没有去那里找过什么论文,反正我是常去的,你去了你就会发现,他们的那些很多算法也是别人已经做过,已经写过的。

  我发在这里也只是想起到一种提醒的作用,要说让我自己想一个什么高深的算法,我自认现在还没有那个水平。

  首先,在MDX中要通过鼠标的旋转就知道,鼠标这时的移动并不是在一个平面内移动,而是在一个半球内移动的。

MDX之平移与旋转(2) 

  就象上图中的从A到B点是按照圆的轨迹在移动,而不是按直线由A到B的。

  旋转之所有叫旋转那就要有旋转轴和旋转角,旋转轴也就是平面OAB的法向量,平面的法向量有公式可以求的,旋转角一样也有公式可以求:

  n=OA×OB

  α=ACOS((OA*OB)/(|OA|*|OB|))

  在程序中旋转角(α)可以设置为2倍,这样如果用鼠标点击视图的左中边缘,然后拖动至视图的右中边缘,则可实现模型以y 轴为旋转轴的360旋转,也就是一周。

  现在的问题就成了求A,B两点坐标的问题了,那么这两点的坐标怎么样的确定呢,注意有两种情况:

MDX之平移与旋转(2)

  还 有一个问题就是R的大小,R一般会设置成为窗口宽度的一半;

  到此要解决的问题除了一个问题也就差不多都解决了,那个问题下面再说,我将代码copy到下面我在一句句说。。

其它资源
来源声明

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