携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第4天,点击查看活动详情 >>
二十面缓冲几何体(二十面体)IcosahedronGeometry
二十面体,和十二面体类似,参数也类似
IcosahedronGeometry(radius : Float, detail : Integer)
- radius 半径 也就是十二面体的大小
- detail 默认为0, 大于1的时候将会变成球体,不为0的时候会增加顶点
车削缓冲几何体(轴对称结构的立方体)LatheGeometry
绕着一条线旋转形成的形状。例如:灯泡、保龄球瓶、蜡烛、蜡烛台、酒瓶、玻璃杯等。你提供一系列点作为 2D 轮廓,并告诉 Three.js 沿着某条轴旋转时需要将侧面分成多少块。
这个立方体就是创建一些具有轴对称结构的物体,好像车床车东西一样
const points = [];
for ( let i = 0; i < 10; i ++ ) {
points.push( new THREE.Vector2( Math.sin( i * 0.2 ) * 1 + 5, ( i - 5 ) * 2 ) );
}
const geometry = new THREE.LatheGeometry( points );
const lathe = new THREE.Mesh( geometry, material );
scene.add( lathe );
这里头的points构造怎么去理解呢?结合实例化LatheGeometry的参数就可以明白车削缓冲几何体如何生成了
LatheGeometry 参数解析
LatheGeometry(points : Array, segments : Integer, phiStart : Float, phiLength : Float)
- points: 这个参数就是构成这个车削缓冲的弧度线的点的集合
- segments: 要生成的车削几何体圆周分段的数量,看图说话,假如线段数量为1 则展示出来的就是刚才points的点所连成的弧度线
- phiStart: 以弧度表示的开始弧度, 0- 2π, 当范围是2π的时候,开始弧度参数无意义
- phiLength: 以弧度表示的范围,0-2π
八面缓冲几何体 (八面体) OctahedronGeometry
八面体,和十二面体类似,参数也类似
OctahedronGeometry(radius : Float, detail : Integer)
- radius 半径 也就是八面体的大小
- detail 默认为0, 大于1的时候将会变成球体,不为0的时候会增加顶点
ParametricGeometry 略。。过于复杂
平面缓冲几何体(平面)PlaneGeometry
生成一个平面
const geometry1 = new THREE.PlaneGeometry( 10, 10 );
const material1 = new THREE.MeshPhongMaterial( {color: 0xffff00, side: THREE.DoubleSide} );
const plane = new THREE.Mesh( geometry1, material1 );
plane.position.z = 10
plane.position.x = -20
scene.add( plane );
PlaneGeometry 参数说明
PlaneGeometry(width : Float, height : Float, widthSegments : Integer, heightSegments : Integer)
- width: 平面沿着X轴的宽度。默认值是1
- height: 平面沿着Y轴的高度。默认值是1
- widthSegments: 平面的宽度分段数,越大线越密
- heightSegments: 平面的高度分段数,越大线越密
关于轴对称车削缓冲和平面几何体的代码以代码片段的方式呈现