返回

three.js 中的几何体(二)

前端

几何体是three.js中表示三维对象的基本元素之一,它定义了对象的形状。在上一节中,我们介绍了BoxGeometry、SphereGeometry和PlaneGeometry这三种基本几何体。在本节中,我们将继续介绍一些更高级的几何体,包括EdgesGeometry、CylinderGeometry和TorusGeometry。

EdgesGeometry

EdgesGeometry边缘几何体,用来绘制物体的边缘线,可以用来框住某个具体的物体,比如官方案例:

const geometry = new THREE.EdgesGeometry( new THREE.BoxGeometry( 1, 1, 1 ) );
const material = new THREE.LineBasicMaterial( { color: 0x00ff00 } );
const edges = new THREE.LineSegments( geometry, material );
scene.add( edges );

它的使用流程稍微复杂一些,首先要声明一个几何体,然后给这个几何体添加一个线框材质,最后把这个线框对象添加到场景中。

CylinderGeometry

CylinderGeometry圆柱几何体,用来创建一个圆柱体,可以用来表示柱子、管道等物体。它的构造函数有如下参数:

const geometry = new THREE.CylinderGeometry( radiusTop, radiusBottom, height, radialSegments, heightSegments, openEnded );
  • radiusTop:圆柱体的上底面半径。
  • radiusBottom:圆柱体的下底面半径。
  • height:圆柱体的长度。
  • radialSegments:圆柱体的径向分段数。
  • heightSegments:圆柱体的纵向分段数。
  • openEnded:是否打开圆柱体的两端。

TorusGeometry

TorusGeometry环面几何体,用来创建一个甜甜圈形状的物体,可以用来表示轮胎、游泳圈等物体。它的构造函数有如下参数:

const geometry = new THREE.TorusGeometry( radius, tube, radialSegments, tubeSegments );
  • radius:环面的外半径。
  • tube:环面的内半径。
  • radialSegments:环面的径向分段数。
  • tubeSegments:环面的管状分段数。

结语

在本节中,我们介绍了EdgesGeometry、CylinderGeometry和TorusGeometry这三种高级几何体。这些几何体可以用来创建更复杂的3D模型。在下一节中,我们将介绍如何使用这些几何体来创建更复杂的3D场景。