2

Papervision3D のアークボールの実装はありますか?

Flash/ActionScript 用のアークボールの実装は多数ありますが、Papervision3D 専用のものはありません。

フラッシュのアークボール実装の例を次に示します。

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

DirectX ArcBall クラスに基づいて独自の実装を作成することにしました。

しかし、それは正しく機能しません。その理由については途方に暮れています。

立方体の最初の位置から、アークボールをクリックしてドラッグすることができます。

ただし、クォータニオンで軸/角度の累積を開始すると、立方体が十分に回転すると方向が逆になります。回転方向の反転やその他の奇妙な動作があってはなりません。

私はインターネットを精査しましたが、Papervision3D とアークボールに直接関連するものは何も見つかりませんでした。(別の 3D Flash エンジン用のアークボールの実装があるのではないでしょうか?)

この問題で何か助けていただければ幸いです。

** 編集 ** Papervision3D (シーンに少なくとも 1 つのオブジェクト (つまり) キューブが必要) のアークボール実装が機能している回答に対して 500 ポイントの報奨金を追加しました。

4

4 に答える 4

1

前に Dave K が言及したページには、多くのアークボールの例があります。ここでは、トラックボールから期待される典型的な物理学に準拠するものを示します。ただし、検索を少し広げて、クォータニオンとペーパービジョンを探すこともできます。

quaternionsに慣れていない場合、それらは 4 次元のベクトル空間の要素であり、探しているアークボール効果の背後にある基礎です。このチュートリアルでは、非常に理解しやすい四元数の計算について理解を深めることができます。

クォータニオンは Papervision によってネイティブに処理されるため、チュートリアルはそれほど難しくありません。グーグルをざっと見てみると、次の結果が得られました。

Papervision3D のクォータニオン

papervision3d と恐ろしいジンバル ロックについての会話

最後に、このトピックについて議論している wordpress ブログのリスト(すべてがフラッシュに関連しているわけではありません)

于 2009-10-21T00:35:28.590 に答える
0

これはあなたが探しているものです:回転するためにオブジェクトをドラッグしますか?

ここに興味深い部分があります:

    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;
于 2009-10-20T16:13:56.443 に答える
0

私はあなたがこれを探していると思います: http://www.kelvinluck.com/assets/papervision3d/cube_tweaks/

于 2009-10-18T18:10:25.207 に答える
0

これがあなたの望むものかどうかはまったくわかりませんが、このプロジェクトは基本的に Flash の実装であり、いくつかの要素は papervision3D を対象としています。

http://code.google.com/p/spinnyglobe/

特に:

http://code.google.com/p/spinnyglobe/source/browse/trunk/flash/org/makerlab/ArcBall.as?r=122

于 2009-10-20T18:07:05.357 に答える