首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Papervision3D的Arcball实现

Papervision3D的Arcball实现
EN

Stack Overflow用户
提问于 2009-09-29 17:01:42
回答 4查看 1.3K关注 0票数 2

是否有针对Papervision3D的arcball实现?

有许多用于Flash/ActionScript的arcball实现,但没有专门针对Papervision3D的实现。

下面是一个flash的arcball实现示例:

http://www.unitzeroone.com/blog/2009/09/08/source-better-flash-10-3d-interaction-arcball/

我已经开始基于DirectX ArcBall类编写自己的实现。

然而,它不能正常工作,我对原因感到困惑。

从立方体的初始位置,我可以点击并拖动弧球,正如人们所期望的那样。

但是,如果我开始累积四元数中的轴/角度,当立方体旋转足够多时,方向会反转。不应该有旋转方向的反转或任何其他奇怪的行为。

我在网上搜索过,没有发现任何与Papervision3D和arcball有直接关系的东西。(也许有另一个3D Flash引擎的arcball实现?)

在这件事上的任何帮助都将非常感谢。

**编辑**添加了500点的奖励,用于Papervision3D的一个有效的弧球实现的答案(必须至少有一个对象(即)场景中的立方体)。

EN

回答 4

Stack Overflow用户

发布于 2009-10-21 08:35:29

Dave K之前提到的页面有许多arcball的例子,here是一个符合轨迹球所期望的典型物理的例子。然而,你可能想扩大你的搜索范围,寻找四元数和纸视觉。

如果你不熟悉quaternions,它们是4维向量空间中的一个元素,也是你正在寻找的弧球效果背后的基础。这个tutorial将让你快速掌握四元数数学,这是相当容易理解的。

四元数是由Papervision原生处理的,所以教程并不难找到。快速浏览一下google就会得到以下结果。

Quaternions in Papervision3D

papervision3d上的conversation和可怕的万向节锁

最后,一个list的wordpress博客讨论了这个话题(不是所有的flash相关的)

票数 1
EN

Stack Overflow用户

发布于 2009-10-18 18:10:25

我想你要找的是:http://www.kelvinluck.com/assets/papervision3d/cube_tweaks/

票数 0
EN

Stack Overflow用户

发布于 2009-10-21 00:13:56

这就是你要找的东西:Dragging an object to rotate

下面是有趣的部分:

代码语言:javascript
复制
    var currentMousePoint:Point = new Point(viewport.containerSprite.mouseX, viewport.containerSprite.mouseY);

    if(isMouseDown)
    {
        var difference:Point = currentMousePoint.subtract(previousMousePoint);
        var vector:Number3D = new Number3D(difference.x, difference.y, 0);

        var rotationAxis:Number3D = Number3D.cross(vector, FORWARD);
        rotationAxis.normalize();

        var distance:Number = Point.distance(currentMousePoint, previousMousePoint);
        var rotationMatrix:Matrix3D = Matrix3D.rotationMatrix(rotationAxis.x, -rotationAxis.y, rotationAxis.z, distance/250);

        sphere.transform.calculateMultiply3x3(rotationMatrix, sphere.transform);
    }

    previousMousePoint = currentMousePoint;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1493799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档