mirror of
https://github.com/liabru/matter-js.git
synced 2025-01-15 16:38:43 -05:00
add relativeForce
This commit is contained in:
parent
e909b0466c
commit
d3813fc611
1 changed files with 22 additions and 0 deletions
|
@ -694,6 +694,28 @@ var Axes = require('../geometry/Axes');
|
||||||
body.torque += offset.x * force.y - offset.y * force.x;
|
body.torque += offset.x * force.y - offset.y * force.x;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Applies a relative force to a body from a given relative position, including resulting torque.
|
||||||
|
* @method applyForce
|
||||||
|
* @param {body} body
|
||||||
|
* @param {vector} relativePosition
|
||||||
|
* @param {vector} relativeForce
|
||||||
|
*/
|
||||||
|
Body.applyRelativeForce = function(body, relativePosition, relativeForce) {
|
||||||
|
var sin = Math.sin(body.angle);
|
||||||
|
var cos = Math.cos(body.angle);
|
||||||
|
|
||||||
|
Body.applyForce(
|
||||||
|
body, {
|
||||||
|
x: body.position.x + cos * relativePosition.x - sin * relativePosition.y,
|
||||||
|
y: body.position.y + sin * relativePosition.x + cos * relativePosition.y,
|
||||||
|
}, {
|
||||||
|
x: cos * relativeForce.x - sin * relativeForce.y,
|
||||||
|
y: sin * relativeForce.x + cos * relativeForce.y,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the sums of the properties of all compound parts of the parent body.
|
* Returns the sums of the properties of all compound parts of the parent body.
|
||||||
* @method _totalProperties
|
* @method _totalProperties
|
||||||
|
|
Loading…
Reference in a new issue