threejs 随鼠标旋转
时间: 2023-09-07 22:11:02 浏览: 149
要实现随鼠标旋转的效果,你可以使用Three.js中的OrbitControls控制器。这个控制器可以让你通过鼠标拖拽来旋转、缩放和平移场景。
首先,你需要在HTML页面中引入Three.js和OrbitControls.js文件:
```html
<script src="https://cdn.jsdelivr.net/npm/three@0.129.0/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.129.0/examples/js/controls/OrbitControls.js"></script>
```
然后,创建一个场景、相机和一个立方体模型:
```javascript
// 创建场景
const scene = new THREE.Scene();
// 创建相机
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
// 创建渲染器
const renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// 创建立方体模型
const geometry = new THREE.BoxGeometry();
const material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
const cube = new THREE.Mesh(geometry, material);
scene.add(cube);
```
接下来,创建OrbitControls控制器,并将它绑定到相机上:
```javascript
// 创建OrbitControls控制器
const controls = new THREE.OrbitControls(camera, renderer.domElement);
// 设置控制器的属性
controls.enableDamping = true;
controls.dampingFactor = 0.05;
controls.screenSpacePanning = false;
controls.minDistance = 1;
controls.maxDistance = 100;
// 更新控制器
controls.update();
```
最后,在渲染循环中更新控制器:
```javascript
function animate() {
requestAnimationFrame(animate);
// 使立方体模型旋转
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
// 更新控制器
controls.update();
// 渲染场景
renderer.render(scene, camera);
}
animate();
```
现在你可以通过鼠标拖拽来旋转场景了。
阅读全文