2

それで、私はトラックボール コントロールを使用してきましたが、最近、奇妙なバグに気付きました。パンしてから新しい位置からズームアウトすると、コントロールが非常に奇妙な動作を開始し、原点の方向が引っ張られます (パンが大きいほど問題が大きくなります)。

問題を示すフィドルをまとめました。ボールから離れてパンするだけです (右クリック + マウスの移動)。次に、ズームアウトします。

それが私のせいではないことは 100% 確信が持てませんが、この例は非常に単純で誰にでもできるものであるかのように感じます。

ここに私が有効にしたいくつかの設定があります:

var controls = new THREE.TrackballControls(this.camera, this.renderer.domElement);
var radius = 14;// scalar value used to determine relative zoom distances
controls.rotateSpeed = 1;
controls.zoomSpeed = 1.2;
controls.panSpeed = 1;

controls.noZoom = false;
controls.noPan = false;

controls.staticMoving = false;
controls.dynamicDampingFactor = 0.3;

controls.minDistance = radius * 1.1;
controls.maxDistance = radius * 25;

controls.keys = [ 65, 83, 68 ]; // [ rotateKey, zoomKey, panKey ]
4

1 に答える 1

4
  1. トラックボール コントロールは、ライブラリではなくサンプルの一部であるため、自由にハッキングできます。

  2. 何が起こっているのかというと、最大距離に達するまで「パン後のズームアウト」がうまく機能し、その後カメラが「スライド」します。

  3. これは、内側と外側の球を示すこの更新されたフィドルでより明確に確認できる場合があります: http://jsfiddle.net/z52dP/1/

  4. コードを改善できると思われる場合は、three.js github サイトに提案を投稿してください。

three.js r.54

.
于 2013-01-02T20:14:27.497 に答える