碰撞检测和碰撞响应

2024-01-02

我一直在尝试使用 androids Opengl 来表示一些移动/旋转的对象。现在我想让他们碰撞并做出现实的反应。

通过研究这个问题,我可以找到许多资源,这些资源建议我如何确定两个 3D 形状是否在当前帧中发生碰撞(或者它们是否会在下一帧中发生碰撞)。但是,我无法找到描述如何获取有关已发生碰撞的信息的资源。

例如,使用凸形状,我想知道哪个顶点首先与哪个平面发生碰撞,在帧之间的什么时间发生。这样我就可以知道每个形状应如何响应其位置和旋转。

我可以用射线描述每个顶点的运动,以及每个帧之间平面的运动。然而,我有点困惑如何使用它来找到它们未来的交叉点,以及这是否可能节省时间效率。我读过一些减少复杂计算需求的方法,例如八叉树和命中框。

我对这个主题相当陌生,因此任何有关如何处理这些问题的资源或建议将不胜感激。感谢您的时间!


对于碰撞检测,您正在寻找的解决方案称为连续碰撞检测,解释可以是在这里找到 http://www.wildbunny.co.uk/blog/2011/04/20/collision-detection-for-dummies/。检测两个物体之间的接触相对简单,尤其是在忽略角速度的情况下,但如果您要对两个以上对象进行模拟,则需要全局求解 TOI,因为碰撞顺序很重要,并且无法通过检查孤立碰撞来确定对(没那么简单)。

此外,您还应该说明您要解决的具体问题 - 因为找到 TOI(影响时间)并不是一项简单的任务在某些情况下,近似可能是完全有效的解决方案 http://www.wildbunny.co.uk/blog/2011/03/25/speculative-contacts-an-continuous-collision-engine-approach-part-1/(例如游戏模拟)。

The 博客我已经给出了链接 http://www.wildbunny.co.uk/blog/author/paulfirth/包含有关该主题的平易近人的文章,如果您想深入了解,还可以参考进一步阅读。

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

碰撞检测和碰撞响应 的相关文章

随机推荐

  • 使用 for 循环在 ggplot2 中添加图层

    我想这很容易 但我不明白 它与 ggplots 上 for 循环的使用有关 问题是 为什么下面这两个代码给出不同的结果 看起来好像在带有循环的代码上 只考虑了第二次迭代 但我不知道为什么 根本问题是 是否可以使用 ggplot2 对象运行此
  • Android 数据存储 IOException 无法重命名为

    我正在尝试在我的项目中实现 Jetpack Datastore 我当时用的是apha 01版本和代码工作正常 然后我在Gradle文件中看到有新版本所以我将其更新为alpha 03 启动我的应用程序后 我遇到了另一个问题 我发现Proto库
  • 为什么我在 Android 上无法检测到带有 unicode 字符的 wifi SSID?

    我有一个 Wi Fi AP 其 SSID 是一串 unicode 字符 例如 我希望 Android 设备连接到它 当我的设备 Nexus One 检测到热点时 SSID 看起来像这样 并且无法识别它 知道如何解决这个问题吗 802 11数
  • Python数据结构按字母顺序排序列表[重复]

    这个问题在这里已经有答案了 我对 python 中的数据结构有点困惑 and 我正在尝试对一个简单的列表进行排序 可能是因为我无法识别数据的类型 所以无法对其进行排序 我的清单很简单 Stem constitute Sedge Eflux
  • Scala:在路径相关上下文中重用路径相关类型产生的泛型

    简而言之 以下内容无法编译 原因如下 我怎样才能使其工作 trait Simulator type CM T def useCM v CM case class CMH S lt Simulator T cm S CM T class Si
  • 查找不平衡的大括号和圆括号

    海湾合作委员会4 6 0 GNU Emacs 23 2 1 我有一些 C 代码 在某些时候我一定犯了一个打字错误 现在我留下了不平衡的花括号或括号 我有大约 2000 行代码 我只是想知道有什么技术可以找到它们吗 Emacs 有一些很好的功
  • 我应该使用 ON DELETE CASCADE、 :dependent => :destroy 还是两者都使用?

    在 Rails 应用程序中 我在 MySQL 中有外键约束 我将它们全部手动设置 与我的迁移分开 我想弄清楚我是否应该使用 ActiveRecord dependent gt destroy选项 例如 在我的架构中我有表 users log
  • 如何在 python 中检索按钮的行和列信息并使用它来更改其设置

    我正在创建一个游戏并尝试用 python 和 tkinter 制作它 我已经用基于单词的 python 完成了它 并希望将其图形化 我创建了一个用作网格的按钮网格 这些按钮当前带有字母 O 以显示空白区域 然而 我想要的是显示海盗所在位置的
  • 使用 DataFrame.lookup 获取列名称是字符串子集的行

    假设有一个如下所示的简单数据框 data grades Feb 10 20 30 40 50 grades Jan 5 10 15 20 25 grades April 1 2 3 4 5 months Feb April Jan Feb
  • 如何使用具有深度限制的 jQuery find() ?

    我需要使用 jquery 的 find 选择器来获取所有具有 field container 类的 div 问题是我无法深入 DOM 树 这是我的简化 HTML 结构 div div div class field container sp
  • JTable 中的多行选择

    我有一个 JTable 其中一列是不可编辑的文本 第二列是一个显示布尔值的复选框 现在我想要的是 当用户选择多行并取消选中其中任何一行时选中复选框 则选择下的所有复选框都应取消选中 反之亦然 使用 Hovercraft 的示例和 camic
  • 简单插入适用于 phpmyadmin 但不适用于 php

    我正在尝试使用 mysql query 插入此查询 INSERT INTO um group rights um group id cms usecase id um right id VALUES 2 1 1 INSERT INTO um
  • MySQL / MariaDB:如何查找基于时间的数据的差距?

    记录器系统每 5 秒保存一行数据 秒 0 5 10 15 55 时间类似于23 00 07不可能 有时 记录器由于通信错误而无法保存 并且表中只是缺少行 我需要检测这些间隙 我想读取间隙之前的最后一行和间隙之后的第一行 这些是演示数据 cr
  • 来自升序序列的连续子列表

    given xs 1 2 3 4 6 7 9 10 11 我的目标是回来 1 2 3 4 6 7 9 10 11 我想我可以这样做 groupBy x y gt succ x y xs 但这会返回 1 2 3 4 6 7 9 10 11 进
  • 哪个 .NET 版本适用于 C# 5 异步功能 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 用户必须在计算机上安装哪个版本的 N
  • python属性前后带有下划线有什么区别[重复]

    这个问题在这里已经有答案了 我想知道Python中这些有什么区别 self var1 self var1 self var1 self var1 作为起点 您可能会发现这句话很有帮助PEP 8 Python 代码风格指南 http www
  • 在编写 Spring Resource Bundle 时是否有单一规则来处理单引号?

    春天的ResourceBundleMessageSource uses MessageFormat用于替换占位符 0 内部消息 MessageFormat要求单引号 使用两个单引号 see 消息格式 Javadoc http docs or
  • 从文本块中删除停用词

    我正在处理一个文本块 步骤之一是删除停用词 Textblob 是不可变的 因此我将其转换为列表来完成这项工作 blob tb tekst lista word for word in blob words if word not in st
  • 可以同时延长2个课程吗?

    我有这些课程 public class myClassPage System Web UI Page public myClassPage public class myClassControl System Web UI UserCont
  • 碰撞检测和碰撞响应

    我一直在尝试使用 androids Opengl 来表示一些移动 旋转的对象 现在我想让他们碰撞并做出现实的反应 通过研究这个问题 我可以找到许多资源 这些资源建议我如何确定两个 3D 形状是否在当前帧中发生碰撞 或者它们是否会在下一帧中发