TubeGeometry - Verge3D 用户手册 - Soft8Soft
Description: 了解如何在使用 Verge3D 制作的交互式 3D 应用程序中使用 TubeGeometry

Geometry →

# 管道几何体（TubeGeometry）

创建一个沿着三维曲线延伸的管道。

## 代码示例

`class CustomSinCurve extends v3d.Curve { constructor(scale = 1) { super(); this.scale = scale; } getPoint(t, optionalTarget = new v3d.Vector3()) { const tx = t * 3 - 1.5; const ty = Math.sin(2 * Math.PI * t); const tz = 0; return optionalTarget.set(tx, ty, tz).multiplyScalar(this.scale); } } const path = new CustomSinCurve(10); const geometry = new v3d.TubeGeometry(path, 20, 2, 8, false); const material = new v3d.MeshBasicMaterial({ color: 0x00ff00 }); const mesh = new v3d.Mesh(geometry, material); app.scene.add(mesh);`

## 构造函数

### TubeGeometry(path : Curve, tubularSegments : Integer, radius : Float, radialSegments : Integer, closed : Boolean)

path — Curve — 一个由基类Curve继承而来的3D路径。
tubularSegments — Integer — 组成这一管道的分段数，默认值为64。
radius — Float — 管道的半径，默认值为1。
radialSegments — Integer — 管道横截面的分段数目，默认值为8。
closed — Boolean 管道的两端是否闭合，默认值为false。

## 属性

共有属性请参见其基类Geometry。

### # .parameters : Object

一个包含着构造函数中每个参数的对象。在对象实例化之后，对该属性的任何修改都不会改变这个几何体。

### # .tangents : Array

一个Vector3切线数组。

### # .normals : Array

一个Vector3法线数组。

### # .binormals : Array

一个Vector3次法线数组。

## 方法(Methods)

共有方法请参见其基类Geometry。

## 源代码

src/geometries/TubeGeometry.js