QuadraticBezierCurve.js 1.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/**************************************************************
 *	Quadratic Bezier curve
 **************************************************************/


THREE.QuadraticBezierCurve = function ( v0, v1, v2 ) {

	this.v0 = v0;
	this.v1 = v1;
	this.v2 = v2;

};

THREE.QuadraticBezierCurve.prototype = Object.create( THREE.Curve.prototype );
15
THREE.QuadraticBezierCurve.prototype.constructor = THREE.QuadraticBezierCurve;
16 17 18 19


THREE.QuadraticBezierCurve.prototype.getPoint = function ( t ) {

M
Mr.doob 已提交
20
	var vector = new THREE.Vector2();
21

22 23
	vector.x = THREE.ShapeUtils.b2( t, this.v0.x, this.v1.x, this.v2.x );
	vector.y = THREE.ShapeUtils.b2( t, this.v0.y, this.v1.y, this.v2.y );
24

M
Mr.doob 已提交
25
	return vector;
26 27 28 29 30 31

};


THREE.QuadraticBezierCurve.prototype.getTangent = function( t ) {

M
Mr.doob 已提交
32
	var vector = new THREE.Vector2();
33

34 35
	vector.x = THREE.CurveUtils.tangentQuadraticBezier( t, this.v0.x, this.v1.x, this.v2.x );
	vector.y = THREE.CurveUtils.tangentQuadraticBezier( t, this.v0.y, this.v1.y, this.v2.y );
36 37 38

	// returns unit vector

M
Mr.doob 已提交
39
	return vector.normalize();
40

41
};