[英](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.