我正在尝试对物体施加力。让它以我的鼠标位置相对于对象生成的 Angular 移动。
我有 Angular
targetAngle = Matter.Vector.angle(myBody.pos, mouse.position);
现在我需要施加一个力,让 body 沿着那个 Angular 移动。 我应该为 applyForce 方法在下面的值中输入什么?
// applyForce(body, position, force)
Body.applyForce(myBody, {
x : ??, y : ??
},{
x:??, y: ?? // how do I derive this force??
});
我要在此处输入什么 x 和 y 值才能让 body 沿着鼠标和 body 之间的 Angular 移动。
最佳答案
要施加力使物体沿该方向移动,您需要以弧度为单位计算 Angular 正弦和余弦值。您只需将对象的位置作为第一个向量传递,而不应用扭矩(旋转)。
var targetAngle = Matter.Vector.angle(myBody.pos, mouse.position);
var force = 10;
Body.applyForce(myBody, myBody.position, {
x: cos(targetAngle) * force,
y: sin(targetAngle) * force
});
此外,如果您需要,applyForce()
上的文档是 here .
(我知道这个问题很老,我或多或少是为偶然发现它的人做的)
关于javascript - Matter.js 计算所需的力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35827012/