Threejs-围绕中心旋转对象
Threejs - rotation object around center
我有这个代码的工作解决方案:
var collisionGroup = new THREE.Group();
scene.add( collisionGroup );
(function() {
var geometry = new THREE.CircleGeometry( 20, 32 );
var material = new THREE.MeshBasicMaterial( { color: 0xffff00 } );
var collisionCircle = new THREE.Mesh( geometry, material );
collisionCircle.position.z = -180;
collisionGroup.add( collisionCircle );
})();
function animate(timestamp) {
// apply camera rotation
var rotObjectMatrix = new THREE.Matrix4();
rotObjectMatrix.makeRotationFromQuaternion(camera.quaternion);
collisionGroup.rotation.setFromRotationMatrix(rotObjectMatrix);
// Update VR headset position and apply to camera.
controls.update();
// Render the scene through the manager.
manager.render(scene, camera, timestamp);
requestAnimationFrame(animate);
}
但我想知道是否有可能在不为我想旋转的每个对象创建组的情况下实现这一点(会有很多)。这些对象的位置是基于相机旋转的,这就是为什么我使用makeRotationFromQuaternion和rotation.setFromRotationMatrix。
也许有比存储相机四元数更简单的解决方案。
我不确定这是否是您想要实现的一个好的替代方案,但您可以考虑直接将对象添加到相机中(相机也是THREE.Object3D
实例)。作为摄影机的子对象,这将使其位置和旋转相对于摄影机的位置和旋转。
相关文章:
- 在JS中围绕旋转对象旋转对象
- Threejs-围绕中心旋转对象
- 使用tween.js围绕世界轴旋转对象
- 在HTML5画布中,是否可以围绕旋转对象旋转对象
- 逐渐旋转对象使其面向某个点
- 从对象旋转对象.带有自定义动画功能的trix.setrotationfromleuler
- 如何使用本地坐标旋转对象
- 绕世界轴旋转对象
- 使用捕捉 SVG 将旋转对象限制在边界内
- 旋转对象以匹配轨迹
- Three.js-鼠标移动时沿(0,0,0)旋转对象
- three.js:结合tween.js围绕世界轴旋转对象
- 使用Rapha制作旋转对象的动画;l.js
- 在HTML画布中移动旋转对象
- 在指定的时间内围绕一个圆旋转对象
- Javascript Canvas如何从旋转对象拍摄360*
- CSS3和HTML5 -旋转对象组
- 由多个其他旋转对象组成的旋转对象
- Javascript中的可拖动和可旋转对象(Mootools)
- 点击旋转对象