簡體   English   中英

(多維數據集)與three.js的旋轉

[英](Cube) Rotation with three.js

我正在three.js上的一個項目中工作,我有一個立方體,可以用一些按鈕(箭頭)旋轉它。 旋轉有效,但是經過一些旋轉后,旋轉方向不再正確。 可能是因為立方體的軸移動了? 但這使我有些困惑。

我需要多維數據集能夠通過一些控件向上,向下,向左和向右旋轉。 目前基本上是這樣工作的:

當按下方向時,說“向右”,我們將使用tween.js更新mesh.rotation.y,直到mesh.rotation.y旋轉90度角。

//SCENE, MESH,.. SETUP
...

function rotateRight(){
   var start = {x:cubeMesh.rotation.x, y:cubeMesh.rotation.y, z:cubeMesh.rotation.z};
   //RIGHT: y + 90°
   var end = {x:cubeMesh.rotation.x, y:cubeMesh.rotation.y + degreeToRadians(90),
              z:cubeMesh.rotation.z};

   var tween = new TWEEN.Tween(start)
      .to(end, 1000)
      .easing( TWEEN.Easing.Exponential.InOut )
      .onUpdate(function(){
         cubeMesh.rotation.x = this.x;
         cubeMesh.rotation.y = this.y;
         cubeMesh.rotation.z = this.z;
       })
   .start();
}

function animateScene(){
    requestAnimationFrame(animateScene);
    TWEEN.update();
    renderer.render(scene, camera);
}

我需要更改什么以保持此多維數據集向正確的方向旋轉? 我們可以固定立方體的軸以便它們不會移動嗎? 我已經閱讀了有關世界軸與對象軸的一些知識,這是我需要更改的東西,如何實現呢?

提前致謝!

弄清楚了,這要歸功於這篇文章: 如何在Three.js軸上旋轉3D對象?

將對象繞世界軸旋轉。

抱歉,不能發表評論,這肯定不是完美的答案,但是如果您在輪換方面遇到問題,也許補間不是很正確嗎? 令我印象深刻的是,您的功能僅在1個軸上旋轉,而您仍在更新所有3個軸。 也許您應該放棄x和z而只更新正確的軸? 也許這也有助於解決您的問題,因為您知道自己實際上正在更改。 不過,這只是一個主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM