几何体

three.js封装了很多创建几何体的构造函数,这些几何体是所有复杂集合体的基础。因此选择合适的几何体去拼接想要的结果还是挺重要的。

常用函数

几何体构造函数的每一个参数都有一个默认的值,使用构造函数的时候如果有些参数没有定义,系统会使用默认值。 比如下面立方体的创建语句构造函数BoxGeometry没有填写后三个参数

//立方体(长宽高均为100)
var box=new THREE.BoxGeometry(100,100,100);

创建球体

//球体(半径60,细分数40,40)
var box=new THREE.SphereGeometry(60,40,40);

创建圆柱、圆台

//圆台(顶部半径20,底部半径40,高度100,圆周细分数40)
var box=new THREE.CylinderGeometry(20,40,100,40);

//圆柱(顶部、底部半径均为40,高度100,圆周细分数40)
var box=new THREE.CylinderGeometry(40,40,100,40);

创建立方体

 //立方体顶点位置坐标
var vertices = [
    -1,-1,-1,    1,-1,-1,    1, 1,-1,    -1, 1,-1,
    -1,-1, 1,    1,-1, 1,    1, 1, 1,    -1, 1, 1,
];
//立方体顶点索引,三个顶点定义一个三角面
var indices = [
    2,1,0,    0,3,2,
    0,4,7,    7,3,0,
    0,1,5,    5,4,0,
    1,2,6,    6,5,1,
    2,3,7,    7,6,2,
    4,5,6,    6,7,4
];
var box=new THREE.PolyhedronGeometry(vertices,indices,60);

顶点索引存在的好处是可以重用数据,可以简单类比数据库,以立方体为例三个相邻的三个三角面会共用同一个顶点位置坐标。