物体移动和旋转多少

How much object move and rotate

我创建了一个可以对物体施加力的系统。因此,当施加的力与质心不对齐时,物体开始旋转。当施加力时它也会移动。 但我开始想,当我在它的角落里推动 space 中的东西(如矩形)时,它会旋转并同时开始移动。所以能量被分配给直线运动和旋转速度,但比例如何?现在我以 100% 的效率将能量转移到两者。但如果你把所有的能量加起来,那将是我给的能量的两倍。 那么有人知道这个比率或方程式吗?

谢谢

毕达哥拉斯提取力分量

下图将有助于可视化力。

  1. A, B, C, D, EM 是二维点 {x,y}
  2. 红色 AB 是向量形式的力。
  3. M是质心
  4. 蓝色BD是移动物体的力
  5. 绿色BE是旋转的力量

通过获取归一化向量 BMAB 的叉积的反正弦来找到角度 Ɵ

旋转力是 AB * sin(Ɵ) 的长度,正确的方向(符号)将来自算法(BM x 的交叉AB) 并且跨国力是 AB * cos(Ɵ) 的长度并且沿着线 BM

伪代码

// 2D Points from diagram
A = {x,y};  
B = {x,y};
M = {x,y};

// get length of vectors AB BM (^ is to the power of)
ABlen = ((B.x - A.x) ^ 2 + (B.y - A.y) ^ 2) ^ 0.5;
BMlen = ((B.x - M.x) ^ 2 + (B.y - M.y) ^ 2) ^ 0.5;


// Create normalized vectors AB and BM
ABnorm = {x : (B.x - A.x) / ABlen, y : (B.y - A.y) / ABLen};
BMnorm = {x : (M.x - B.x) / BMlen, y : (M.y - B.y) / BMLen};

// Get the angle Ɵ
Ɵ = asin(BMnorm.x * ABnorm.y - BMnorm.y * ABnorm.x);

// Rotational Force BE
rotateForce = ABlen * sin(Ɵ);

// Translational Force BD
translateForce = ABlen * cos(Ɵ);

// Translational force as a vector
translateForceVec = {x : ABnorm.x * translateForce, y : ABnorm.y * translateForce};

牛顿第二定律

f通过牛顿第二定律F = ma得到加速度a = F / m

旋转力变成旋转加速度,但取决于物体的质量分布。