# 三角形（[name]）

一个三角形由三个表示其三个角的[page:Vector3 Vector3]所定义。

## 构造函数

### [name]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] )

[page:Vector3 a] - 三角形的第一个角，默认值是一个在(0, 0, 0)处的[page:Vector3]。
[page:Vector3 b] - 三角形的第二个角，默认值是一个在(0, 0, 0)处的[page:Vector3]。
[page:Vector3 c] - 三角形的第三个角（最后一个角），默认值是一个在(0, 0, 0)处的[page:Vector3]。
创建一个新的[name]。

## 属性

### [property:Vector3 a]

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

### [property:Vector3 b]

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

### [property:Vector3 c]

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

## 方法

### [method:Triangle clone]()

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

### [method:Vector3 closestPointToPoint]( [param:Vector3 point], [param:Vector3 target] )

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

### [method:Boolean containsPoint]( [param:Vector3 point] )

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

### [method:this copy]( [param:Triangle triangle] )

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

### [method:Boolean equals]( [param:Triangle triangle] )

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

### [method:Float getArea]()

返回三角形的面积。

### [method:Vector3 getBarycoord]( [param:Vector3 point], [param:Vector3 target] )

[page:Vector3 point] - [page:Vector3]
[page:Vector3 target] — 结果将会被拷贝到这一Vector3中。
从给定的向量中返回一个[link:https://en.wikipedia.org/wiki/Barycentric_coordinate_system barycentric coordinate]（重心坐标）。
请参阅关于这一概念的相关图片：[link:http://commons.wikimedia.org/wiki/File:Barycentric_coordinates_1.png Picture of barycentric coordinates]。

### [method:Vector3 getMidpoint]( [param:Vector3 target] )

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

### [method:Vector3 getNormal]( [param:Vector3 target] )

[page:Vector3 target] — 结果将会被拷贝到这一Vector3中。
计算三角形的法向量（[link:https://en.wikipedia.org/wiki/Normal_(geometry) normal vector]）。

### [method:Plane getPlane]( [param:Plane target] )

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

### [method:Boolean intersectsBox]( [param:Box3 box] )

[page:Box3 box] - 将被用于检测是否与三角形有交集的box。
判定三角形与传入的[page:Box3 box]是否相交。

### [method:this set]( [param:Vector3 a], [param:Vector3 b], [param:Vector3 c] ) [param:Triangle this]

将三角形的[page:.a a]、[page:.b b]和[page:.c c]属性设置为所传入的[page:Vector3 vector3]。
请注意，此方法仅复制给定对象的值。

### [method:this setFromAttributeAndIndices]( [param:BufferAttribute attribute], [param:Integer i0], [param:Integer i1], [param:Integer i2] ) [param:Triangle this]

attribute - [page:BufferAttribute] of vertex data
i0 - [page:Integer] index
i1 - [page:Integer] index
i2 - [page:Integer] index
Sets the triangle's vertices from the buffer attribute vertex data.

### [method:this setFromPointsAndIndices]( [param:Array points], [param:Integer i0], [param:Integer i1], [param:Integer i2] ) [param:Triangle this]

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

## 源代码

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]