mirror of
https://github.com/photonstorm/phaser
synced 2024-12-21 02:23:29 +00:00
34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
var Point = require('../point/Point');
|
|
|
|
/**
|
|
* Get a point on the curve using the `t` (time) value, which must be between 0 and 1.
|
|
*
|
|
* @param {number} [t=0] - The time value along the curve from which to extract a point. This is a value between 0 and 1, where 0 represents the start of the curve and 1 the end.
|
|
* @param {Phaser.Point|Object} [point] - An optional Phaser.Point, or Object containing public `x` and `y` properties. If given the resulting values will be stored in the Objects `x` and `y` properties. If omitted a new Phaser.Point object is created.
|
|
* @return {Phaser.Point} An Object with the x, y coordinate of the curve at the specified `t` value set in its `x` and `y` properties.
|
|
*/
|
|
var GetPoint = function (curve, t, out)
|
|
{
|
|
if (t === undefined) { t = 0; }
|
|
if (out === undefined) { out = new Point(); }
|
|
|
|
if (t < 0)
|
|
{
|
|
t = 0;
|
|
}
|
|
|
|
if (t > 1)
|
|
{
|
|
t = 1;
|
|
}
|
|
|
|
var t2 = t * t;
|
|
var t3 = t * t2;
|
|
|
|
out.x = t3 * curve._ax + t2 * curve._bx + t * curve._v1x + curve._p1x;
|
|
out.y = t3 * curve._ay + t2 * curve._by + t * curve._v1y + curve._p1y;
|
|
|
|
return out;
|
|
};
|
|
|
|
module.exports = GetPoint;
|