使用 Box2D 模拟“牛顿万有引力定律”

2023-11-27

我想模拟牛顿万有引力定律使用 Box2D。

我浏览了手册,但找不到执行此操作的方法。

基本上我想做的是将几个物体放置在太空中(零重力)并模拟运动。

有小费吗?


实现起来非常容易:

for ( int i = 0; i < numBodies; i++ ) {

    b2Body* bi = bodies[i];
    b2Vec2 pi = bi->GetWorldCenter();
    float mi = bi->GetMass();

    for ( int k = i; k < numBodies; k++ ) {

        b2Body* bk = bodies[k];
        b2Vec2 pk = bk->GetWorldCenter();
        float mk = bk->GetMass();

        b2Vec2 delta = pk - pi;
        float r = delta.Length();
        float force = G * mi * mk / (r*r);

        delta.Normalize();
        bi->ApplyForce(  force * delta, pi );
        bk->ApplyForce( -force * delta, pk );
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Box2D 模拟“牛顿万有引力定律” 的相关文章

  • 对推力从当前速度矢量到目标矢量的平滑变化进行编程

    TL dr 我不确定如何计算一个矢量与另一个矢量之间的推力的平滑过渡 我正在编写一个简单的游戏 敌人在开放空间 没有墙壁 中追赶玩家 我独立计算敌人的 x 和 y 速度 如果敌人朝着玩家的方向前进 则加速它们 如果敌人走错路 则快速减慢它们
  • java中的时间同步

    在 for 循环中 我通过检索和处理车辆信息来控制基于模拟步骤的交通模拟器 SUMO 为了确保我的程序 实时 模拟 1 个模拟步骤 1 秒 我想在处理阶段之后让我的程序休眠 直到下一个时间步骤开始 为了获得更好的结果 我根据最初采用的参考时
  • 种子设置:为什么输入不变后输出不同

    设置种子可确保再现性 并且在仿真建模中非常重要 考虑一个简单的模型f 有两个变量y1 and y2出于兴趣 这些变量的输出由随机过程决定 rbinom 和参数x1 and x2 两个感兴趣变量的输出彼此独立 现在假设我们想要将相应参数发生变
  • 凸多面体的质心

    我有一个封闭的凸多面体 它由凸多边形 面 数组定义 而凸多边形 面 由 3D 空间中的顶点数组定义 我试图找到多面体的质心 假设密度均匀 目前我用这个伪代码中的算法计算它 public Vector3 getCentroid Vector3
  • 如何在 Box2D 中设置形状/夹具/主体的中心

    嘿 我正在尝试集成 SFML 和 Box2D SFML 使精灵 形状等的设置中心变得非常容易 另一方面 Box2D 我遇到了麻烦 因为我不知道如何设置甚至找到形状或夹具的中心 在我看来 当手动添加顶点到 b2 PolygonShape 时
  • 如何使用 box2d 在 libgdx 中拖动对象?

    我已将对象添加到box2d世界在libgdx 我想知道是否可以用鼠标拖动对象 如果是这样 怎么办 thanks 这里有几个选项 您可以使用鼠标关节 也可以使用运动体并手动设置其位置 看看如何使用鼠标关节的一个很好的例子 http code
  • android 背景重复-y

    我有一个图像 我想将其放置在右侧并在 y 轴上重复它 HTML 中类似于 背景 url img png 右重复 y 在android中可以做到这一点吗 当我将此位图设置为背景时 它不在右侧
  • 无法加载 libgdx 的共享库 box2d

    我有一个使用 Maven 构建的 libGDX 项目 它过去运行良好 但最近它停止工作 因为 libGDX 将 box2d 移动为扩展 我将扩展作为依赖项添加到项目的核心 就像任何其他依赖项一样
  • 在 R 中模拟不同初始条件的 ODE 模型

    我有一个模型 我想生成随机初始条件 运行模型并保存输出 以便每个模拟都是重复的 但我很难解释和实现循环 而且我也知道它们并不总是在 R 中最好使用 所以我很挣扎 我的最终目标是在 10 个不同的随机初始条件下迭代模拟 并保存 ODE 的输出
  • Box2D - b2body GetUserData 始终返回 null

    我正在尝试根据 box2d 中的 b2body 调整精灵的位置和旋转 创建主体后 我将 userData 属性设置为保存精灵和位置等的主体对象的属性 问题是在勾选方法 b gt GetUserData 中永远不会检索我放入其中的对象 你能看
  • 致命信号11(和引擎项目)

    我正在创建由 andengine 框架提供支持的 android 游戏 box2d 扩展我收到 致命信号 11 这似乎是突然发生的 我想你可以随机称呼它 没有任何线索 至少 我不知道有任何线索可以帮助我解决这个问题 我的猜测是 1 我正在使
  • 在 R 中生成具有不同样本大小的多项式随机变量

    我需要生成具有不同样本大小的多项随机变量 假设我已经生成了样本大小 如下所示 samplesize c 50 45 40 48 然后我需要根据这个不同的样本大小生成多项随机变量 我尝试使用 for 循环并使用 apply 函数 sapply
  • CMake 错误:CMake 无法找到与“MinGW Makefiles”对应的构建程序

    我正在尝试使用 cmake 为 c 构建 Box2D 库 当我运行 cmake gui 时出现错误 CMake Error CMake was unable to find a build program corresponding to
  • AndEngine Sprite/Box2D Body 删除使我的程序崩溃,没有错误/异常信息?

    我正在制作一个滑板游戏 其中有障碍 你必须使用 box2D 和 AndEngine 跳过 我试图做到这一点 以便当玩家与物体碰撞时 该物体被移除 并在物体的旧位置放置爆炸 但是精灵移除代码中的某些内容冻结了我的程序 导致它结束 甚至没有强制
  • 如何在Python中计算输出的均值、众数、方差、标准差等?

    我有一个基于概率的简单游戏 每天我们抛一枚硬币 如果正面朝上 我们就赢了 我们会得到 20 美元 如果我们抛硬币 反面朝上 那么我们会在月底损失 19 美元 28 天 我们可以看到我们失去或赚了多少 def coin tossing gam
  • 如何将旋转器从右向左对齐?

    谁能告诉我我做错了什么 我有 2 个 Spinner 和两个 TextView 我想将它们右对齐 我已将所有内容设置为右侧 但所有内容仍然左对齐 它是这样的 但我也希望它看起来像这样 这是我的 XML 代码
  • 如何计算在一定距离内达到一定速度所需的减速度?

    我已经尝试过典型的物理方程 但它们都不起作用 因为这些方程处理恒定的加速度 而我的方程需要改变才能正常工作 基本上 我有一辆车可以以很大的速度行驶 并且在到达路径终点时需要在给定的距离和时间内减速并停止 所以我有 V0 或当前速度 Vf 或
  • 重叠并固定小平面中的 x 尺度(尺度=“自由”)以制作电影

    在另一篇文章中 Justin 的帮助下 我用以下方法绘制了模拟结果facet gridggplot2 中的选项 包含数据和答案的帖子在这里 使用facet grid选项通过ggplot2绘制数据框的列 https stackoverflow
  • 加速球之间的碰撞检测

    我正在编写一个物理引擎 模拟器 其中包含 3D 太空飞行 行星 恒星引力 船舶推力和相对论效应 到目前为止 一切进展顺利 但是 我需要帮助的一件事是碰撞检测算法的数学 我使用的运动迭代模拟基本上如下 注意 3D 矢量全部大写 For eac
  • 是否有任何模拟器/工具可以生成流式传输消息?

    出于测试目的 我需要模拟客户端每秒生成 100 000 条消息并将它们发送到 kafka 主题 有没有任何工具或方法可以帮助我生成这些随机消息 有一个用于生成虚拟负载的内置工具 位于bin kafka producer perf test

随机推荐

  • Python:与 list.remove 混淆

    我对 Python 很陌生 很抱歉这个可能很简单的问题 虽然我现在花了2个小时才找到答案 我简化了代码来说明问题 side 5 eva side print str side side before print str eva eva be
  • 限制Spritekit游戏中GUI元素的比例

    由于帖子太大 我提前道歉 但是每个尝试过制作某种通用应用程序的人都知道这是一个相当有问题的东西 所以请对我宽容一些 The goal 我想要实现的目标 如上图所示 是在 iPhone 5 和 6 上使用 2x 资源 并保持应用程序的相同外观
  • 动态模块/服务配置和 AOT

    我需要根据运行时开关动态配置一些 Angular 服务 在 AOT 之前的几天 我使用以下代码让它工作 NgModule imports HttpModule providers export class MyModule static f
  • 将地址分配给整型变量

    为什么你可以像这样给整型变量分配地址 编译器不会给出错误 我一直认为你只能将整数值分配给整数变量 int a 0x28ff1c 您可以对 char 变量执行相同的操作 编译器不会给出错误 char b 0x28ff1c 它将在控制台屏幕上输
  • 是否可以为整个应用程序设置自定义字体?

    我需要在整个应用程序中使用某种字体 我有相同的 ttf 文件 是否可以在应用程序启动时将其设置为默认字体 然后在应用程序的其他地方使用它 设置后 如何在布局 XML 中使用它 是的 有反思 这有效 基于这个答案 注意 这是由于缺乏对自定义字
  • NSSoftLinking - 在(空)框架中找不到函数“SLSIsSuppressedByScreenTime”

    在 macOS Catalina 测试版 上 我在 Xcode 11 测试版 中创建了一个新的 macOS 项目 在创建向导中 我选择 Objective C 和 使用 XIB 如果我运行该项目 我会得到以下控制台输出 foo projec
  • 从 Google Dataflow 访问 GKE 中运行的 HTTP 服务

    我有一个在 Google Container Engine 集群上运行的 HTTP 服务 位于 kubernetes 服务后面 我的目标是使用固定名称从在同一 GCP 项目上运行的 Dataflow 作业访问该服务 就像可以使用 DNS 从
  • 外部组件引发异常:Visual Studio 2010:SEHException:是什么原因导致的? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 我在调试项目时收到此错误消息 外部组件抛出异常 昨天下
  • 如何柯里化任意数量的 JavaScript 函数?

    假设我有一些功能 function g a b c return a b c 我想将其转换为 柯里化 形式 在引号中 因为它本身并不完全柯里化 function h a b c switch true case a undefined b
  • 如何显示我的可可触摸框架故事板屏幕?

    我创建了一个带有故事板的简单 Cocoa touch 框架 在我的框架中 我有一个 MainViewController swift 视图控制器 我创建了一个新的单视图项目 导入了我的框架并尝试加载我的框架视图控制器 但我得到了黑屏 我不知
  • adb wait-for-device 和 adb wait-for-devices 之间有什么区别吗?

    我使用了两个命令来等待设备出现 adb 等待设备和 adb 等待设备 两者似乎都在等待设备启动 我没有发现它们的行为有任何区别 他们的行为有什么不同吗 添加有关我所做的更多信息 所以这就是我所做的 从android文档中我使用了adb wa
  • JAX WS 客户端无法进行身份验证

    我正在尝试在标准 JAVA 7 JAX WS 工具的帮助下使用安全 HTTPS 模式 Web 服务 此网络服务需要身份验证 我已经成功将证书添加到我的本地 java 密钥库 我在 WSDL 文件的帮助下生成了所有需要的类wsimport t
  • 将段落或单元格旋转任意角度——Itext

    我有一个网站 用户可以在其中上传照片并创建相册 此外 他们还可以在绝对位置 旋转和对齐方式添加文本 文本可以有新行 我一直在使用 Itext 库来自动创建稍后打印的高质量 Pdf 相册 将用户上传的图像添加到 PDF 中非常简单 但当我尝试
  • 如何在Python中的qrcode中心插入标志?

    我在 python 中使用 pyqrcode 模块并用它生成 QR 码 如何将徽标放在二维码的中央 代码看起来像这样 import pyqrcode data Hello World number pyqrcode create data
  • 为什么 C# 中 Int32 结构体的 MinValue 前面有两个减号?

    当我右键单击时int在我的代码中并选择 转到定义 Visual Studio 将打开一个标题为 Int32 来自元数据 的文件 该文件包含以下行 public const Int32 MinValue 2147483648 双 符号是什么意
  • Delphi XE5中的Android后台服务

    我需要为android编写一些服务 使用德尔福XE5 火猴 该服务需要在后台运行并定期读取短信收件箱 将其写入 sqlite DB 短信备份 我知道如何读取短信以及如何将其写入数据库 但我不知道如何使应用程序作为服务在后台工作 有任何想法吗
  • C++ 中的 Python 函数装饰器相当于什么?

    我正在将 Python 指标库移植到 C Python 库提供的一个 API 是函数装饰器 可以轻松记录函数的计时数据 通过将函数定义修改为 timed timing foo def foo foo result foo 本质上变成了 st
  • 为 docker 镜像创建一个图标

    我创建了我的应用程序的 docker 映像 songkong songkong 但我注意到它没有图标 而许多其他 docker 映像却有 如何向 docker 映像添加图标 我的 docker 镜像可在 docker hub 上找到 并非所
  • “发明原则”视频中的 Javascript 树源代码

    Bret Victor 的 Inventing on Principle 视频 http vimeo com 36579366 给我很大启发 另外 我对用 Javascript 绘制的那棵树非常着迷 我没有做过太多图形编程 在我的整个职业生
  • 使用 Box2D 模拟“牛顿万有引力定律”

    我想模拟牛顿万有引力定律使用 Box2D 我浏览了手册 但找不到执行此操作的方法 基本上我想做的是将几个物体放置在太空中 零重力 并模拟运动 有小费吗 实现起来非常容易 for int i 0 i lt numBodies i b2Body