123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="utf-8" />
- <base href="../../" />
- <script src="list.js"></script>
- <script src="page.js"></script>
- <link type="text/css" rel="stylesheet" href="page.css" />
- </head>
- <body>
- <h1>[name]</h1>
- <div class="desc">
- Class representing a [link:https://en.wikipedia.org/wiki/Spline_(mathematics) spline].<br /><br />
- </div>
- <h2>Examples</h2>
- <div>
- [example:webgl_lines_splines WebGL / lines / splines]<br />
- [example:webgl_lines_dashed WebGL / lines / dashed]<br />
- [example:software_sandbox Software / sandbox]<br />
- [example:canvas_lines_dashed Canvas / lines / dashed]
- </div>
- <h2>Constructor</h2>
- <h3>[name]( [page:Array points] )</h3>
- <div>
- Initialises the spline with [page:Array points], which are the [page:Vector3 Vector3s]
- through which the spline will pass.
- </div>
- <h2>Properties</h2>
- <h3>[property:Array points]</h3>
- <h2>Methods</h2>
- <h3>[method:Array getControlPointsArray]( )</h3>
- <div>
- Returns an array with triplets of [ x, y, z ] coordinates that correspond to the
- current control points.
- </div>
- <h3>[method:Vector3 getPoint]( [page:Integer k] )</h3>
- <div>
- [page:Integer k] — point index<br /><br />
- Return the interpolated point at [page:Integer k].
- </div>
- <h3>[method:Object getLength]( [page:Integer nSubDivisions] )</h3>
- <div>
- [page:Integer nSubDivisions] — number of subdivisions between control points. Default is *100*.<br /><br />
- Returns an object with the two properties. The property <strong>[page:Number total]</strong> 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.
- </div>
- <h3>[method:null initFromArray]( [page:Array a] )</h3>
- <div>
- [page:Array a] — array of the form
- <code>
- var a = [ [x1, y1, z1], [x2, y2, z2], ... ];
- </code>
- from which to initialise the points array.<br /><br />
- 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.
- </div>
- <h3>[method:Vector3 interpolate]( p0, p1, p2, p3, t, t2, t3 )</h3>
- <div>
- </div>
- <h3>[method:null reparametrizeByArcLength]( [page:Float samplingCoef] )</h3>
- <div>
- [page:Float samplingCoef] — how many intermediate values to use between spline points<br /><br />
- 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.
- </div>
- <h2>Source</h2>
- [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
- </body>
- </html>
|