开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第17天,点击查看活动详情
前言
前面学习的事例中创建的都是BoxGeometry立方体,three.js还有其他立方体,下面我们就看下圆形、圆锥立方体的创建方法。
圆形缓冲几何体
CircleGeometry用来创建圆形缓冲几何体,该几何体名字中包含圆形,但它是由一个个围绕着中心点的三角面组成的,所以该物体不是真正的圆,‘圆弧’是由一条条直线连接成的。该构造器接受四个参数:
- raduis:用于设置半径,圆弧到中心的距离,默认为1。
- thetaStart:第一个三角面的起点角度,默认从0开始构造。
- thetaLength:三角面构成的角度,默认为2pi,也就是构成一个圆。
- segments:三角面的数量,默认为32个,至少由三个构成。 上面四个参数都由默认值,我们创建出一个默认的圆形缓存几何体。
const cubeGeometry = new THREE.CircleGeometry();
const cubeMaterial = new THREE.MeshBasicMaterial({ color: 0xffff00 });
//根据几何体和材质创建物体
const cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
//将几何体添加到场景中
scene.add(cube);
圆锥缓冲几何体
ConeGeometry用于创建圆锥缓冲几何体。圆锥几何体跟圆形几何体类似,也是由一个个三角面构成的圆锥。但它比圆形复杂点,所以参数也要比圆形多几个:
- raduis:设置圆锥底部圆形的半径,默认为1。
- height:设置圆锥的高度,也就是顶点到底部圆心的距离,默认为1。
- radialSegments:侧面三角面的数量,默认为32。
- heightSegments:圆锥高度上的分段,相当于把height进行均分,默认为1。
- openEnded:是否显示圆锥地面,布尔值,默认为false。
- thetaStart、thetaLength:这两个值跟圆形的含义默认值都一样,这个的thetaLength就是底面的角度。 同样创建一个默认的圆锥几何体。
const cubeGeometry = new THREE.ConeGeometry();
const cubeMaterial = new THREE.MeshBasicMaterial({ color: 0xffff00 });
const cube = new THREE.Mesh(cubeGeometry, cubeMaterial);
scene.add(cube);
总结
以上就是three中圆形与圆锥缓冲几何体的创建方法,需要明白这里的圆形、圆锥是由三角面构成的,这与数学圆弧构成的是有所区别的。