从 pymunk 到现实世界的单位

From pymunk to real-world units

我有两个问题。

  1. 如何将 pymunk 旋转转换为真实世界 radians/sec。
  2. 如何根据像素确定下落质量的 x 和 y 速度 moved/sec

它与 space.step() 或每秒帧数有什么关系吗?

Pymunk 在文档中使用的单位有一个简短的解释:http://www.pymunk.org/en/latest/overview.html#mass-weight-and-units

通常 Pymunk 不知道也不关心您使用的是什么单位,这取决于您何时对模拟建模以使用有意义的单位。您从 Pymunk 读出的值将使用您输入的任何值的单位(或派生单位)。

例如:

在您的代码中您执行 space.step(0.01),Pymunk 不知道这意味着 0.01 秒还是 0.01 小时或其他。在职位上也是如此。你做 body.position = 400,400,但 Pymunk 不知道给定的位置是以像素、米还是其他单位表示的。这意味着如果您决定使用 Pymunk 的时间单位是秒,距离单位是像素,那么您可以使用 body.velocity 获得的速度将为 pixels/seconds([unit of distance]/[unit of time]).

鉴于上述 body.angular_velocity 将是 1 rad/second,并且 body.velocity 将在 pixels/second 中返回。但是请注意,您在屏幕上看到的内容不会完全匹配,因为您将 0.01 作为 dtspace.step(dt),但是您的绘图循环不一定是每秒 运行 100 次(它通常用于Pygame Clock.tick(..) 方法来限制循环)