QuadraticBezierCurve.js 958 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /**************************************************************
  2. * Quadratic Bezier curve
  3. **************************************************************/
  4. THREE.QuadraticBezierCurve = function ( v0, v1, v2 ) {
  5. this.v0 = v0;
  6. this.v1 = v1;
  7. this.v2 = v2;
  8. };
  9. THREE.QuadraticBezierCurve.prototype = Object.create( THREE.Curve.prototype );
  10. THREE.QuadraticBezierCurve.prototype.getPoint = function ( t ) {
  11. var vector = new THREE.Vector2();
  12. vector.x = THREE.Shape.Utils.b2( t, this.v0.x, this.v1.x, this.v2.x );
  13. vector.y = THREE.Shape.Utils.b2( t, this.v0.y, this.v1.y, this.v2.y );
  14. return vector;
  15. };
  16. THREE.QuadraticBezierCurve.prototype.getTangent = function( t ) {
  17. var vector = new THREE.Vector2();
  18. vector.x = THREE.Curve.Utils.tangentQuadraticBezier( t, this.v0.x, this.v1.x, this.v2.x );
  19. vector.y = THREE.Curve.Utils.tangentQuadraticBezier( t, this.v0.y, this.v1.y, this.v2.y );
  20. // returns unit vector
  21. return vector.normalize();
  22. };