threejs 实现波浪热点效果
时间: 2023-11-27 14:05:18 浏览: 34
以下是使用Three.js实现波浪热点效果的代码示例:
```javascript
// 创建场景
var scene = new THREE.Scene();
// 创建相机
var camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.z = 5;
// 创建渲染器
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
// 创建平面几何体
var geometry = new THREE.PlaneGeometry(10, 10, 100, 100);
// 创建材质
var material = new THREE.MeshPhongMaterial({
color: 0x00ff00,
wireframe: true
});
// 创建网格
var plane = new THREE.Mesh(geometry, material);
scene.add(plane);
// 创建光源
var light = new THREE.PointLight(0xffffff, 1, 100);
light.position.set(0, 0, 10);
scene.add(light);
// 创建波浪效果
var time = 0;
function animate() {
requestAnimationFrame(animate);
time += 0.1;
for (var i = 0; i < geometry.vertices.length; i++) {
var vertex = geometry.vertices[i];
vertex.z = Math.sin(time + vertex.x * 0.5) * 0.5;
}
geometry.verticesNeedUpdate = true;
renderer.render(scene, camera);
}
animate();
```
这段代码创建了一个平面几何体,并在其上实现了波浪效果。具体来说,它通过循环遍历平面几何体的所有顶点,根据时间和顶点的x坐标计算出每个顶点的z坐标,从而实现波浪效果。