从 pymunk 到现实世界的单位
From pymunk to real-world units
我有两个问题。
- 如何将 pymunk 旋转转换为真实世界 radians/sec。
- 如何根据像素确定下落质量的 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 作为 dt
到 space.step(dt)
,但是您的绘图循环不一定是每秒 运行 100 次(它通常用于Pygame Clock.tick(..)
方法来限制循环)
我有两个问题。
- 如何将 pymunk 旋转转换为真实世界 radians/sec。
- 如何根据像素确定下落质量的 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 作为 dt
到 space.step(dt)
,但是您的绘图循环不一定是每秒 运行 100 次(它通常用于Pygame Clock.tick(..)
方法来限制循环)