我正在读一本关于构建物理引擎的书。我目前坚持非线性投影,这是一种解决刚体之间渗透的方法,因为我不完全理解代码。
以下是我理解的简要说明。非线性投影比线性投影更可信,因为它增加了线性投影的旋转。这本书使用了这个算法:
线性惯性:我完全理解线性惯性部分。
角度惯性:本书使用以下算法计算物体的角惯性,我不明白,因为它没有给出任何解释并将每一步分配给同一个变量angularInertiaWorld。
我想知道算法的每一步发生了什么。我能想出的就是你从一些值开始,你得到的值应该是对象的角惯性。
线性投影:我完全理解非线性投影算法的线性部分。
角度旋转:本书使用此算法计算旋转对象的量。这里有一些更有意义的变量名称,这有助于我理解更多的东西。
我得到了所有单位分析和书中所做的冲动以达到轮换金额。我不太了解的是反惯性张量的使用。
也许我还没有完全理解这一点。我原本以为它就像一个物体的标量惯性矩,用于扭矩= I * alpha,其中我是惯性矩,alpha是角加速度。然后,当你施加扭矩时,你得到α=扭矩/ I,所以将扭矩乘以反转惯性矩会得到alpha。结果,我认为这就是反惯性张量的原因。
如果有人能向我解释它是如何在这里使用的话,我将不胜感激。
最后,感谢您花时间阅读所有内容。我真的很感激有关角惯性和/或角度旋转部件的任何解释。
答案 0 :(得分:0)
关于角度惯性:
在此算法中,您可以计算速度的变化,作为对象垂直于物体表面的力的响应(接触法线向量是法向力向量):
步骤2 :(相对接触位置)x(接触法线[力])=(转动惯量)
步骤3 :(反惯性张量)应用于(转动惯量)=(角速度)
步骤4 :(角速度)x(相对接触位置)=(线速度)
步骤5 :(线速度)*(接触法线[力])=施加力方向的速度变化