我想在 Java 中创建一个物理引擎。然而,这不是我担心的代码。这只是刚体物理学的数学,特别是力以及它们如何影响物体的旋转。
举例来说,我有一个边长相同的正方形。由于重力(无空气阻力),正方形将加速向地面移动。这意味着正方形中的每个点都会有 (0,-9.8)m/s 的矢量力。
现在假设这个正方形稍微旋转了一点。当这个旋转的正方形与地面(平坦的表面)接触时,接触点(很可能是正方形的角)处将产生脉冲速度矢量。然而,广场上其他角的力量会发生什么变化呢?从原始重力来看,它们受到怎样的影响?
如果我的问题不够详细,我深表歉意。我很想上传图表,但我还没有声誉。
-
旋转是动能的形式
首先类比运动
-
alpha
- 角位置 [rad]
-
omega
- 角速度 [rad/s]
-
epsilon
- 角加速度 [rad/s^2]
alpha(t)/(dt^2)=omega(t)/dt=epsilon(t)
现在惯性
-
I
- 二次旋转质量惯性 [kg.m^2]
-
m
- 质量[千克]
-
M
- 扭矩 [N.m]
和一些要利用的方程
-
M=epsilon*I
- 实现加速所需的扭矩,反之亦然 [N.m]
-
acc=epsilon*radius
- 周界加速度 [m/s^2]
-
vel=omega*radius
- 圆周速度 [m/s^2]
方程#1 可用于直接计算力。方程#2、#3 可用于计算基于摩擦的力,例如车轮抓地力/阻力。不要忘记动能Ek=0.5*m*vel^2+0.5*I*omega^2
这样你就可以利用能量守恒定律。
-
在连续接触过程中object1
with object2
轮流发生这种情况
圆周速度/加速度产生相互作用力,这会减慢物体的旋转object2
产生阻力object2
和反作用力object1
.
if object1
不是固定的,那么这个力也会产生扭矩并旋转object1
如果旋转被迫突然停止,则所有旋转动能部分都会转移到碰撞反作用力冲量。
如果物体处于更复杂的旋转运动中,那么您应该计算实际的旋转轴并alpha,omega,epsilon
并使用它,因为对象可以旋转更多的旋转,每个旋转都有不同的旋转中心。
此外,如果物体正在旋转,并且在不同的轴上应用另一个旋转,那么这会产生陀螺扭矩,也会在垂直于两者的第三轴上产生旋转。
因此,当您将所有这些放在一起时,您就会知道您需要什么结构。抱歉,如果没有有关模拟的结构和属性的更多信息,就无法比这更具体了......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)