# 半边([name])

半边数据结构的基础，也被称为双连通边列表 (DCEL)。

## 引入

[name] 是一个附加组件，必须显式导入。请参阅 [link:#manual/introduction/Installation Installation / Addons].

`import { HalfEdge } from 'three/addons/math/ConvexHull.js';`

## 构造函数

### [name]( [param:VertexNode vertex], [param:Face face] )

[page:VertexNode vertex] - [page:VertexNode] 对其目标顶点的引用
[page:Face face] - [page:Face] 对其面的引用
创建一个 [name] 实例。

## 属性

### [property:VertexNode vertex]

对目标顶点的引用。可以通过查询其孪生顶点或前一个半边的目的地来获得原点。默认值 undefined。

### [property:HalfEdge prev]

对同一面的前一半边的引用。默认值为 null。

### [property:HalfEdge next]

对同一面的下一半边的引用。默认值为 null。

### [property:HalfEdge twin]

对应到达相对面的孪生半边的引用。默认值为 null。

### [property:Face face]

每个半边限定一个面，因此具有对该面的引用。默认值 undefined。

## 方法

### [method:VertexNode head]()

返回目标顶点。

### [method:VertexNode tail]()

返回原点顶点

### [method:Float length]()

返回边的 [link:https://en.wikipedia.org/wiki/Euclidean_distance 欧几里得长度] (直线长度)。

### [method:Float lengthSquared]()

返回边的 [link:https://en.wikipedia.org/wiki/Euclidean_distance 欧几里得长度] (直线长度)的平方。

### [method:this setTwin]( [param:HalfEdge edge] )

[page:HalfEdge edge] - 任何半边缘。
设置这个半边的孪生边。还确保给定半边的孪生引用被正确设置。

## 源代码

[link:https://github.com/mrdoob/three.js/blob/master/examples/jsm/math/ConvexHull.js examples/jsm/math/ConvexHull.js]