UNPKG

js-2dmath

Version:

Fast 2d geometry math: Vector2, Rectangle, Circle, Matrix2x3 (2D transformation), Circle, BoundingBox, Line2, Segment2, Intersections, Distances, Transitions (animation/tween), Random numbers, Noise

72 lines (38 loc) 2.71 kB
<a name="Beizer"></a> ## Beizer Stability: 1 (Only additions & fixes) **reference**: [http://pomax.github.io/bezierinfo/](http://pomax.github.io/bezierinfo/) **reference**: [https://github.com/jackcviers/Degrafa/blob/master/Degrafa/com/degrafa/geometry/utilities/BezierUtils.as](https://github.com/jackcviers/Degrafa/blob/master/Degrafa/com/degrafa/geometry/utilities/BezierUtils.as) **reference**: [http://cagd.cs.byu.edu/~557/text/ch7.pdf](http://cagd.cs.byu.edu/~557/text/ch7.pdf) **reference**: [http://algorithmist.wordpress.com/2009/02/02/degrafa-closest-point-on-quad-bezier/](http://algorithmist.wordpress.com/2009/02/02/degrafa-closest-point-on-quad-bezier/) **reference**: [http://algorithmist.wordpress.com/2009/01/26/degrafa-bezierutils-class/](http://algorithmist.wordpress.com/2009/01/26/degrafa-bezierutils-class/) <a name="Beizer-cubic"></a> * **cubic** (*cp0x*: Number, *cp0y*: Number, *cp1x*: Number, *cp1y*: Number, *cp2x*: Number, *cp2y*: Number, *cp3x*: Number, *cp3y*: Number): Beizer cp0 - start point cp1 - start control point cp2 - end control point cp3 - end point <a name="Beizer-from3Points"></a> * **from3Points** (*cp0x*: Number, *cp0y*: Number, *cp1x*: Number, *cp1y*: Number, *cp2x*: Number, *cp2y*: Number): Beizer For implementation see Figure 21.2 **reference**: [http://pomax.github.io/bezierinfo/](http://pomax.github.io/bezierinfo/) *todo*: DO IT! <a name="Beizer-quadric"></a> * **quadric** (*cp0x*: Number, *cp0y*: Number, *cp1x*: Number, *cp1y*: Number, *cp2x*: Number, *cp2y*: Number): Beizer <a name="Beizer-quadricFrom3Points"></a> * **quadricFrom3Points** (*cp0x*: Number, *cp0y*: Number, *cp1x*: Number, *cp1y*: Number, *cp2x*: Number, *cp2y*: Number) For implementation see Figure 21.1 **reference**: [http://pomax.github.io/bezierinfo/](http://pomax.github.io/bezierinfo/) <a name="Beizer-solve"></a> * **solve** (*out_vec2*: Vec2, *curve*: Beizer, *t*: Number): Vec2 Solves the curve (quadric or cubic) for any given parameter t. **source**: [https://github.com/hyperandroid/CAAT/blob/master/src/Math/Bezier.js](https://github.com/hyperandroid/CAAT/blob/master/src/Math/Bezier.js) <a name="Beizer-getPoints"></a> * **getPoints** (*curve*: Beizer, *npoints*: Number): Vec2[] Solve the curve npoints times and return the solution array. **see**: [Polygon.fromBeizer](#Beizer-Polygon.fromBeizer) <a name="Beizer-length"></a> * **length** (*curve*: Beizer, *step*: Number): Number Calculate the curve length by incrementally solving the curve every substep=CAAT.Curve.k. This value defaults to .05 so at least 20 iterations will be performed. *todo*: some kind of cache maybe it's needed!