[name]

Class representing a [link:https://en.wikipedia.org/wiki/Spline_(mathematics) spline].

Examples

[example:webgl_lines_splines WebGL / lines / splines]
[example:webgl_lines_dashed WebGL / lines / dashed]
[example:software_sandbox Software / sandbox]
[example:canvas_lines_dashed Canvas / lines / dashed]

Constructor

[name]( [page:Array points] )

Initialises the spline with [page:Array points], which are the [page:Vector3 Vector3s] through which the spline will pass.

Properties

[property:Array points]

Methods

[method:Array getControlPointsArray]( )

Returns an array with triplets of [ x, y, z ] coordinates that correspond to the current control points.

[method:Vector3 getPoint]( [page:Integer k] )

[page:Integer k] — point index

Return the interpolated point at [page:Integer k].

[method:Object getLength]( [page:Integer nSubDivisions] )

[page:Integer nSubDivisions] — number of subdivisions between control points. Default is *100*.

Returns an object with the two properties. The property [page:Number total] contains the length of the spline when using [page:Integer nSubDivisions]. The property [page:Array chunkLength] contains an array with the total length from the beginning of the spline to the end of that chunk.

[method:null initFromArray]( [page:Array a] )

[page:Array a] — array of the form var a = [ [x1, y1, z1], [x2, y2, z2], ... ]; from which to initialise the points array.

Initialises using the data in the array as a series of points. Each value in *a* must be another array with three values, where a[n] is v, the value for the *nth* point, and v[0], v[1] and v[2] are the x, y and z coordinates of that point n, respectively.

[method:Vector3 interpolate]( p0, p1, p2, p3, t, t2, t3 )

[method:null reparametrizeByArcLength]( [page:Float samplingCoef] )

[page:Float samplingCoef] — how many intermediate values to use between spline points

Modifies the spline so that it looks similar to the original but has its points distributed in such way that moving along the spline it's done at a more or less constant speed. The points should also appear more uniformly spread along the curve. This is done by resampling the original spline, with the density of sampling controlled by [page:Float samplingCoef]. Here it's interesting to note that denser sampling is not necessarily better: if sampling is too high, you may get weird kinks in curvature.

Source

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