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

# 三角形（Triangle）

一个三角形由三个表示其三个角的Vector3所定义。

## 构造函数

### Triangle(a : Vector3, b : Vector3, c : Vector3)

a — 三角形的第一个角，默认值是一个在(0, 0, 0)处的Vector3。
b — 三角形的第二个角，默认值是一个在(0, 0, 0)处的Vector3。
c — 三角形的第三个角（最后一个角），默认值是一个在(0, 0, 0)处的Vector3。
创建一个新的Triangle。

## 属性

### # .a : Vector3

三角形的第一个角，默认值是一个在(0, 0, 0)处的Vector3。

### # .b : Vector3

三角形的第二个角，默认值是一个在(0, 0, 0)处的Vector3。

### # .c : Vector3

三角形的第三个角（最后一个角），默认值是一个在(0, 0, 0)处的Vector3。

## 方法

### # .clone() → Triangle

返回一个和该三角形具有相同a、b和c属性的新三角形。

### # .closestPointToPoint(point : Vector3, target : Vector3) → Vector3

point - Vector3
target — 结果将被拷贝到这一Vector3中。
返回三角形上最靠近所给定的point的点。

### # .containsPoint(point : Vector3) → Boolean

point — 将被检测的Vector3。
如果传入的点投影到三角形的平面内，则返回true。

### # .copy(triangle : Triangle) → Triangle

将传入的三角形的a、b和c属性复制给这一三角形。

### # .equals(triangle : Triangle) → Boolean

若这两个三角形具有相同的a、b和c属性，则返回true。

### # .getArea() → Float

返回三角形的面积。

### # .getBarycoord(point : Vector3, target : Vector3) → Vector3

point - Vector3
target — 结果将会被拷贝到这一Vector3中。
从给定的向量中返回一个barycentric coordinate（重心坐标）。
请参阅关于这一概念的相关图片：Picture of barycentric coordinates。

### # .getMidpoint(target : Vector3) → Vector3

target — 结果将会被拷贝到这一Vector3中。
计算三角形的中点。

### # .getNormal(target : Vector3) → Vector3

target — 结果将会被拷贝到这一Vector3中。
计算三角形的法向量（normal vector）。

### # .getPlane(target : Plane) → Plane

target — 结果将会被拷贝到这一Plane中。
基于三角形计算出一个平面（plane）。

### # .intersectsBox(box : Box3) → Boolean

box — 将被用于检测是否与三角形有交集的box。
判定三角形与传入的box是否相交。

### # .set(a : Vector3, b : Vector3, c : Vector3) → Triangle this : Triangle

将三角形的a、b和c属性设置为所传入的vector3。
Please note that this method only copies the values from the given objects.

### # .setFromPointsAndIndices(points : Array, i0 : Integer, i1 : Integer, i2 : Integer) → Triangle this : Triangle

points - Vector3数组（Array）
i0 - 整数（Integer）索引
i1 - 整数（Integer）索引
i2 - 整数（Integer）索引
设置三角形的向量为数组中的向量。

## 源代码

src/math/Triangle.js