Curve 曲线

用来创建曲线的带插值算法的抽象类. 它的子类有 CurvePath —— Path —— Shape,
2D曲线有 LineCurve, ArcCurve, EllipseCurve, QuadraticBezierCurve, CubicBezierCurve, SplineCurve;
3D曲线有 LineCurve3, QuadraticBezierCurve3, CubicBezierCurve3, CatmullRomCurve3;
SVG的可用 ShapePath.

function Curve( ) { }

Attributes

type : String

Default value : 'Curve'
Description : 类型

arcLengthDivisions : Integer

Default value : 200
Description : 曲线分段数.

Methods

getPoint( ) : null

由子类重写.
warn: 'THREE.Curve: .getPoint() not implemented.'

getPointAt( u, optionalTarget ) : Vector
u Float (0 ~ 1) 一个点在曲线上的位置百分比
optionalTarget Vector 如果给出, 就返回该向量; 否则, 创建一个新向量

通过曲线上的一个指定的位置, 得到这个点代表的向量 Vector.

getPoints( divisions ) : Array
divisions Integer (default: 5) 分段数

返回分割点、端点的数组, 通过 getPoint().

getSpacedPoints( divisions ) : Array
divisions Integer (default: 5) 分段数

返回分割点、端点的数组, 通过 getPointAt().

getLength( ) : Float

返回曲线的曲线, 即 getLengths( divisions ) 数组的最后一项.

getLengths( divisions ) : Array
divisions Integer 分段数

以 divisions 分段数来等分弧线, 计算每一个分点间的距离, 距离累积并返回数组.
数组的第 0 项:第 1 个分点与起点的距离,
第 1 项:第1个分点与起点的距离 + 第 2 个分点与第 1 个分点的距离,
第 i 项:第1个分点与起点的距离 + 第 2 个分点与第 1 个分点的距离 ... + 第 i 个分点与第 (i - 1) 个分点的距离

updateArcLengths( ) : Array

更新弧长.

getUtoTmapping( u, distance ) : Float
u Float (0 ~ 1) 一个点在曲线上的位置百分比
distance Float 距离

从区间 u(0,1), 返回另一个区间 t, 范围也在(0,1)

getTangent( t ) : Vector
t Float (0 ~ 1) 一个点在曲线上的位置百分比

返回一个点t在曲线上位置向量的法线向量.

getTangentAt( u ) : Vector
u Float (0 ~ 1) 一个点在曲线上的位置百分比

返回一个点u在曲线上位置向量的法线向量.

computeFrenetFrames( segments, closed ) : Object { tangents: -, normals: -, binormals: - }
segments Integer 分段数
closed Boolean 是否闭合

生成弗莱纳框架, 用在 TubeGeometry 和 ExtrudeGeometry 里.

clone( ) : this

复制自身.

copy( source ) : this
source Curve 曲线

把源曲线复制一份.

toJSON( ) : Json

返回 Json 格式的数据.

fromJSON( meta ) : this
meta Object 元数据

从 Json 格式的数据.