我想沿着x軸旋轉圍繞原點0,0,0的場景中的所有對象。但是,設置obj.rotation.x + = 0.1;不沿原點旋轉,而是沿着物體的中心旋轉。我如何在原點周圍實現物體的所需旋轉?我覺得應該有一個簡單的方法,但在官方文檔或在線找不到任何內容。Three.js:全局旋轉
回答
,而不是添加對象的場景,將其添加到THREE.Group()
對象:
var group = new THREE.Group();
scene.add(group);
...
var mesh1 = new THREE.Mesh(...);
group.add(mesh1);
var mesh2 = new THREE.Mesh(...);
group.add(mesh2);
//and so on with meshes
然後在渲染循環:
group.rotation.x += 0.1;
Threejs.r84
你可以使用THREE.Object3D()
將所有網格物體添加到對象中myObject.add(myMesh)
然後使用myObject.rotateX(angle)
其中angle
以弧度表示,myObject
是Object3D對象,而myMesh
是要添加的網格。
這將在本地空間中圍繞x軸旋轉對象。
更多信息可以在文檔中找到:https://threejs.org/docs/#Reference/Core/Object3D
尼斯和感謝快速回復:)有什麼區別與由prisoner849分組提供的解決方案?這兩種方法都與我相似。對於我來說,改變場景的結構似乎是矯枉過正,只是爲了實現圍繞原點的旋轉。所以我正在尋找一個更簡單的解決方案。僅僅從關注點分離的角度來看,我覺得在場景中重新組合對象是實現圍繞原點旋轉的必要條件。但不管怎麼說,這兩個解決方案似乎做工精細,十分感謝:) –
@deusexmachina這裏沒有THREE.Group之間'如此大的差別()'和'THREE.Object3D()')[文件](https://threejs.org /docs/index.html#Reference/Objects/Group)說:_這與Object3D幾乎相同。它的目的是使與對象組工作語法clearer._ – prisoner849
@deusexmachina有這兩者之間沒有什麼區別,只是名字。我一般喜歡使用'Object3D',因爲我對這個名字感到滿意(只是個人選擇)。如果你想看到兩者之間的差異,你可以前往:[Group.js code](https://github.com/mrdoob/three.js/blob/master/src/objects/Group.js)。它導入'Object3D'並將其類型更改爲'Group'。 –
- 1. Three.js增加局部對象旋轉
- 2. three.js所+ .mesh旋轉
- 3. Three.js對象旋轉
- 4. 旋轉在three.js所
- 5. three.js所,組旋轉
- 6. 繞全局Y軸旋轉對象,忽略其局部旋轉
- 7. OpenGL旋轉 - 局部與全局軸
- 8. 當我擁有全局位置,全局旋轉和局部旋轉時計算局部位置
- 9. Three.js中的旋轉錨點
- 10. three.js旋轉面對象
- 11. Three.js - 計算相對旋轉
- 12. (Cube)使用three.js旋轉
- 13. THREE.js對象不會旋轉
- 14. Three.js相機旋轉問題
- 15. Three.js相機圓頂旋轉
- 16. 在Three.js中恢復旋轉
- 17. Three.js 90°向量旋轉
- 18. Three.js飛機的3D旋轉
- 19. Three.js相機旋轉錯誤
- 20. 旋轉球體紋理Three.js
- 21. THREE.js無法旋轉對象
- 22. Three.js對齊和旋轉
- 23. 將本地旋轉添加到全局旋轉
- 24. 旋轉後的全局X和Y
- 25. Three.js局部座標和全局座標
- 26. three.js - 反轉相機旋轉矩陣
- 27. 如何將three.js旋轉轉換爲混合器旋轉?
- 28. Three.js:使用全景中的箭頭鍵順利旋轉
- 29. 旋轉AdWhirl佈局
- 30. three.js所旋轉攝像頭在平面
@ prisonder849我這樣做,它的工作。感謝您的快速回復:)在接受它作爲答案之前,我會等一會兒。 –
@deusexmachina歡迎您) – prisoner849