怎么在three.js中通过控件拖动拖动物体旋转html代码
时间: 2024-05-06 10:20:54 浏览: 76
以下是一个基本的three.js场景,其中包含一个可以通过控件拖动旋转的立方体。您需要引入three.js库和控件库(例如OrbitControls.js)。
HTML代码:
```html
<!DOCTYPE html>
<html>
<head>
<title>Three.js Drag and Rotate Example</title>
<style>
body {
margin: 0;
overflow: hidden;
}
canvas {
display: block;
}
</style>
</head>
<body>
<script src="https://cdn.jsdelivr.net/npm/three@0.128.0/build/three.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/three@0.128.0/examples/js/controls/OrbitControls.js"></script>
<script>
// 创建场景
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 cubeGeometry = new THREE.BoxGeometry(1, 1, 1);
const cubeMaterial = new THREE.MeshBasicMaterial({ color: 0xff0000 });
const cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
scene.add(cube);
// 创建控件
const controls = new THREE.OrbitControls(camera, renderer.domElement);
// 渲染函数
function animate() {
requestAnimationFrame(animate);
cube.rotation.x += 0.01;
cube.rotation.y += 0.01;
renderer.render(scene, camera);
}
animate();
</script>
</body>
</html>
```
在这个场景中,我们创建了一个立方体并将其添加到场景中。然后,我们创建了一个OrbitControls控件,它允许我们通过鼠标拖动来旋转相机。您可以在控件的构造函数中传递相机和渲染器元素作为参数。最后,我们在render函数中使用requestAnimationFrame循环,以便我们可以更新场景并渲染它。
你可以尝试拖动鼠标以旋转相机和立方体。
阅读全文