gpt4 book ai didi

2d - 什么类型的速度-时间曲线模拟在水平表面上滑动到停止的物体?

转载 作者:行者123 更新时间:2023-12-02 20:33:56 24 4
gpt4 key购买 nike

我正在编写一个带有一些滑动对象(例如冰壶或沙狐球)的自上而下 View 的小游戏。
(我碰巧将 PyMunk 用于物理,但由于这个问题一般是关于物理模拟的,所以不要担心语言细节。)
在我开始调整我的小 sim 中的所有值以获得“感觉”正确的行为之前,我想我最好先检查一下以确保我至少首先建模了正确的速度曲线。然而,事实证明,找到一个明确的答案比预期的要困难得多。

A型

为了模拟物体滑动停止的方式,pymunk 允许程序员设置 space.damping ,它的工作原理是这样的(引自 API 引用):“0.9 的值意味着每个物体每秒将失去 10% 的速度。”

这是有道理的,但似乎这会产生具有这种基本形状的速度随时间变化的曲线(更不用说确切的数字了):

     |*
v |
e |
l | *
o |
c | *
i | *
t | *****
y | ****************
---------------------------*----
time

换句话说,加速度随着时间的推移而降低。 (有些人可能更喜欢说“减速度”或“负加速度”减少,但在最纯粹的物理学意义上,速度的任何变化都是“加速度”,在上图中,速度的变化随时间变小。)因为这样的曲线将接近但永远不会越过 0,使用一个截止点,在该截止点下, body 的速度被强制为 0。Pymunk 也为截止点提供了一个设置: space.idle_speed_threshold .

这看起来很简单,但当我在我的小模拟中尝试时给出了相当不令人满意的结果。所以,我开始考虑下面的模型 B。

B型

直观地想,加速度似乎会随着时间的推移而增加,形成这样的曲线:
     |********
v | ******
e | ****
l | ***
o | ***
c | **
i | **
t | *
y | *
--------------------------------
time

如果我想象将一本书推过水平台,它似乎一开始保持大部分速度,但很快就会停下来(可能是因为摩擦导致减速率增加?尽管它的“为什么”不是在这里不那么重要)。
这在 pymunk 中实现起来有点困难,只是因为它没有内置方法,但它可以做到。
并不是我不信任花栗鼠/pymunk 开发人员,但我不确定他们是否打算使用阻尼来模拟我想要模拟的内容。

所以,我的问题不是如何在代码中实现这些曲线中的任何一条,而是 - 哪种类型的曲线可以准确地模拟在水平表面上滑动到停止的对象?

您可能会想“为什么这个人会在编程网站上问物理问题?”,但是在过去四个小时浏览物理网站却一无所获之后,我的希望是,由于如今物理建模在编程中已经足够普遍, SO 社区中的某个人可能对此有先验知识,他们可以很容易地分享。

我知道关于 SO 的讨论: how to calculate a negative acceleration?
其中建议了两种类型的曲线,但是当提问者回答了他的问题(有人帮助他实现了 Model-B 类型的曲线)时,社区并没有就哪种更“物理上准确”达成共识。 (我还为其中一张图表借用了提问者的 ASCII 艺术 - 谢谢。)

我还知道这个来自 pymunk 展示的卡罗姆板模拟示例:
https://github.com/samiranrl/Carrom_rl
这也使用内置阻尼(模型 A,上面)。对于他们的目的来说,它似乎工作得很好。但如果模型 A 不对,我们人类观察者可能不会注意到,因为卡罗姆碎片很长时间没有运动。当我在我的 sim 中尝试模型 A 时,它看起来不对,但后来,但我尝试了更长、更慢的镜头,所以也许它在那里更明显。

或者,也许对我来说“似乎”正确的东西(模型 B)毕竟是不正确的。任何想法表示赞赏。谢谢!

最佳答案

简短的回答是减速度是恒定的。

将冰球固定在表面上的力是恒定的(因为质量是恒定的,重力也是恒定的)。这意味着摩擦力是恒定的,因此减速度也是恒定的。

C 演示代码有一个示例,说明如何使用约束轻松正确地完成此操作:https://github.com/slembcke/Chipmunk2D/blob/master/demo/Tank.c

关于2d - 什么类型的速度-时间曲线模拟在水平表面上滑动到停止的物体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42516131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com