Per-Body 阻尼与 Pymunk 中的 Space 阻尼复合吗?

Does Per-Body Damping Compound With Space Damping in Pymunk?

为项目做一些模拟。

我的问题是 body 的阻尼值是否与 pymunk space 的阻尼值复合(如果有的话)?

例如,如果我有一个 pymunk space、SPACE,SPACE.damping = 0.9,然后我有一个 body、BODY,在我将其 BODY.update_velocity() 方法设置为阻尼值为 0.5 的位置,BODY 的阻尼是 0.9*0.5(或其他组合)还是 0.5?

让我知道是否可以让我的问题更清楚,提前谢谢你。

阻尼是这样使用的:

  1. 步进space时(space.step),将使用的阻尼由damping = pow(space.damping, dt)
  2. 计算
  3. 接下来它将调用space中每个物体的速度函数,传入从步骤1计算的阻尼(在步骤1中的阻尼计算下方)
  4. 默认速度函数执行此计算以设置速度: body.velocity = body.velocity * damping + (gravity + body.force / body.mass) * dt
  5. 然后设置 angular 速度: body.angular_velocity = body.angular_velocity*damping + body.torque / body.moment * dt

您可以在此处找到第 1 步和第 2 步的实际代码:https://github.com/viblo/pymunk/blob/master/chipmunk_src/src/cpSpaceStep.c#L399

这里是第 3 步和第 4 步的代码:https://github.com/viblo/pymunk/blob/master/chipmunk_src/src/cpBody.c#L494 (我在上面的回答中将源代码中的 c 代码翻译成 python/pymunk 个术语)