three.js 创建一个模型 然后让它平移
时间: 2023-11-09 15:33:28 浏览: 48
好的,这个问题我可以回答。首先,你需要先创建一个模型,可以使用Three.js中提供的几何体(Geometry)或导入外部模型文件。然后,你可以使用Three.js中的向量(Vector3)来实现平移。
具体步骤如下:
1. 创建一个模型
这里以创建一个盒子(BoxGeometry)为例:
```javascript
var geometry = new THREE.BoxGeometry(1, 1, 1);
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);
```
2. 平移模型
使用模型的位置(position)属性和向量的add方法实现平移:
```javascript
var offset = new THREE.Vector3(1, 0, 0); // 平移向量
cube.position.add(offset); // 平移模型
```
这里将模型沿着X轴平移了1个单位长度。
完整代码示例:
```javascript
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
var geometry = new THREE.BoxGeometry(1, 1, 1);
var material = new THREE.MeshBasicMaterial({ color: 0x00ff00 });
var cube = new THREE.Mesh(geometry, material);
scene.add(cube);
camera.position.z = 5;
var animate = function () {
requestAnimationFrame(animate);
var offset = new THREE.Vector3(0.01, 0, 0); // 平移向量
cube.position.add(offset); // 平移模型
renderer.render(scene, camera);
};
animate();
```
这里使用了requestAnimationFrame函数来实现动画效果,每帧平移模型一个固定的距离。