关于Three.js ParametricGeometry 的探究,写代码时好久没有用这个来构造几何体了,于是就将之前版本写的直接拿来用,结果一直报错,也很纳闷。说第一个参数的函数的第三个参数需要是一个Vector3,但我就记得只有两个参数,于是就查看源码发现确实需要三个参数,而且不需要返回值了。经过一番研究查看文档终于成功了下面将两个版本的代码列出来。
//v69 之前版本
var plane = function (u, v) {
var points=new THREE.Vector3();
points.x=u*100;
points.y=0;
points.z=v*100;
return points;
};
var Geometry = new THREE.ParametricGeometry(plane1,5, 4, );
var Material =new THREE.MeshPhongMaterial();
plane = new THREE.Mesh(Geometry, Material);
plane.rotation.set(-0.5 * Math.PI,-0.5 * Math.PI,0.5 * Math.PI);
scene.add(plane);
//现在
var plane = function (u, v ,point) {
var x =u*200-100;
var y =0;
var z =v*200-100;
point.set(x,y,z);
};
var Geometry = new THREE.ParametricGeometry(plane1,5, 4, );
var Material =new THREE.MeshPhongMaterial();
plane = new THREE.Mesh(Geometry, Material);
plane.rotation.set(-0.5 * Math.PI,-0.5 * Math.PI,0.5 * Math.PI);
scene.add(plane);
关于ParametricGeometry写法的差异就是这样,有问题的地方欢迎大家指出,一起学习进步。