因为计图项目是海底世界创建,所以虽然画出了个竹子,但是还是想画海草。
由于海草也是波浪形的,想起之前在一个博客里看到了波浪平面的生成是利用ParametricGeometry
生成的,于是也想试一试,就写出了如下代码:
//海草形状
var radialWave = function (u, v) {
var r = 150;
var z = Math.sin(u) * r;
var x = Math.sin(v / 2) * r;
var y = (Math.sin(u * 4 * Math.PI) + Math.cos(v * 2 * Math.PI)) * 10;
return new THREE.Vector3(x, y, z);
};
//按照形成海草形状的参数方程来生成海草几何体,再生成海草网格
var mesh = new THREE.Mesh(new THREE.ParametricGeometry(radialWave, 12, 12),
new THREE.MeshPhongMaterial( {
size:50,
color:0x00ff00,
side:THREE.DoubleSide
})
);
mesh.position.set(0,0,-200);
mesh.scale.set(1,