Dynamic 多形状刚体的惯性计算

Dynamic 多形状刚体的惯性计算,dynamic,physics,Dynamic,Physics,我想以前可能有人问过这个问题,但我找不到答案 我正在为我的游戏引擎编写一个物理库(2d,目前在actionscript3中,但很容易翻译成基于C的语言) 我很难找到一个好的公式来计算我的游戏物体的惯性 问题是,有很多经过验证的公式可以计算凸多边形质心周围的惯性,但我的结构略有不同:我有自己的局部空间的游戏对象。可以将凸面形状(如圆和凸面多边形)添加到此局部空间以形成复杂对象。形状本身也有自己的局部空间。所以有三层:世界、对象和形状空间 我将不会有任何问题,计算惯性的每个单独的多边形的形状上提供的

我想以前可能有人问过这个问题,但我找不到答案

我正在为我的游戏引擎编写一个物理库(2d,目前在actionscript3中,但很容易翻译成基于C的语言)

我很难找到一个好的公式来计算我的游戏物体的惯性

问题是,有很多经过验证的公式可以计算凸多边形质心周围的惯性,但我的结构略有不同:我有自己的局部空间的游戏对象。可以将凸面形状(如圆和凸面多边形)添加到此局部空间以形成复杂对象。形状本身也有自己的局部空间。所以有三层:世界、对象和形状空间

我将不会有任何问题,计算惯性的每个单独的多边形的形状上提供的公式

或者是在一个很棒的网站上提供的

但我想知道如何将其与我的物体结构联系起来,我是否简单地添加了物体形状的所有惯性?这就是另一位作家所用的,他加上了三角形的所有惯性矩。还是还有更多


我发现整个惯性概念很难理解,因为我没有很强的物理背景。所以,如果有人能给我一个答案,最好是关于给定质心惯性背后的逻辑,我将非常感激。事实上,我在我的大学里学习IT游戏开发,但令我非常沮丧的是,他们的老师中没有一个在物理领域有经验

对于线性运动,您只需添加它们即可。惯性与质量成正比。将物体的质量相加,并计算总和的惯性,相当于将它们各自的惯性相加

对于旋转,它变得更复杂,你需要找到重心

阅读牛顿运动定律。如果你在写物理引擎,你需要理解它们。这些法律本身很短,但理解它们需要更多的上下文,所以谷歌需要了解


你应该特别试着理解这些概念:质量,惯性,力,加速度,动量,速度,动能。它们都是相关的。

劳伦斯,如果你呆在二维空间里,物理学会简单得多。在二维空间中,旋转由标量描述,旋转阻力(惯性矩)由标量描述,旋转是可加的和可交换的。在三维空间中,事物变得多毛(多毛)

连接两个对象时,组合对象具有自己的重心。若要计算此组合对象的惯性矩,需要将各个对象的惯性矩相加,还需要为每个对象添加由给定的偏移项。该偏移项是对象的质量乘以到复合质心距离的平方

你需要知道转动惯量的主要原因是,你可以模拟作用在物体上的力矩的响应。这在2D物理学中相当简单。旋转行为类似于牛顿第二定律。用T=Iα代替F=ma。(3D空间中的情况再次变得更加复杂。)你需要找到外力和扭矩,求解线性加速度和旋转加速度,然后进行数值积分


一本关于游戏物理的好入门书可能是合适的。您可以在中找到推荐的文本列表。

@cha-我想您可能想阅读。@Flexo我没给您。。。。请澄清-1:不,你不能只添加它们。即使在二维空间,你也得担心平行轴定理。啊,没错。我只考虑线性运动。要详细说明吗?你必须考虑质心偏移量。想象一下,当你用无质量杆连接点质量时会发生什么。无质量杆的质量为零,因此惯性矩为零。点质量关于质量中心的惯性矩为零,因此只需将物体的惯性矩相加,就可以得到零。加上平行轴定理,偏移量使得复合物体具有正的惯性矩。啊,好的,所以我文章最后一个链接中的作者是正确的。我不知道“平行轴定理”,谢谢你指出。我理解为什么我需要转动惯量,但不知道如何计算。惯性值真的很大,这正常吗?我用了你描述的计算方法,但这给了我巨大的数字。如果我测试一个由一个宽度和高度为80的正方形多边形组成的物体,其中心位于物体的中心,那么弹出的惯性是:3413333.3335。我从对象面积乘以当前设置为1的密度标量计算对象质量。这是正常结果吗?这似乎是一个巨大的数字。哦,谢谢你的物理书籍列表,你说得对,我真的需要一本。我的冲突响应代码给了我错误的结果moment@Laurens-对于宽度=高度=80,密度=1的正方形,你的值为3413333:这个数字看起来大约是它应该的一半。矩形板通过板中心的质量惯性矩为m*(h^2+w^2)/12。当质量m=ρhw时,它变成ρhw*(h^2+w^2)/12。设定ρ=1,h=w,则产生I=w^4/6。二维陆地上的质量惯性矩通常以四次方增长,所以数字很快就变大了。谢谢你再次帮助我,你的答案非常清楚和有用。结果是我把惯性公式翻译成代码时出错了。对于同一个多边形,我现在得到了6826666.6666667,就像你说的,这是我之前得到的结果的两倍。所以我认为我的表面积,质量和惯性的计算现在是正确的。