- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我目前正在开发 2D 射击类型的游戏,并且我正在使用四叉树进行碰撞检测。我编写了一个工作四叉树,可以正确地将我的 Actor 插入它们在树中所属的节点/叶子中。但是,我遇到了一些问题。
首先,我如何实际使用我的四叉树来选择一个对象应该针对哪些其他对象测试碰撞?我不确定这是如何完成的。
这就引出了第二个问题。假设我在节点中有一个对象不是另一个节点的邻居,但是该对象足够大以至于它跨越了几个节点,我如何检查实际的碰撞,因为我猜测树可能认为它不是足够接近以与“远处”节点中的对象发生碰撞?不完全适合节点的对象是否应该保留在父节点中?
在我的游戏中,大多数物体大小不一,并且四处移动。
我已经阅读了大量关于四叉树的博客/文章,但大多数只是解释了如何构建一棵树,而这并不是我真正想要的。
欢迎任何帮助/信息。
最佳答案
您可以建立一个约定,即每个元素都包含在完全包含它的最小四叉树节点中。
然后,当您检查节点 A 的冲突时,您会这样进行:
请注意,对象越小,它们在四叉树中的位置就越深,因此比较少。
关于c++ - QuadTree 用于 2D 碰撞检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434335/
我已经实现了一个有效的 QuadTree。它分割二维空间以容纳由其边界框 (x,y,width,height) 标识的最小可能四边形(直至最小面积)的项目。 我的代码基于这个实现(我的是 Lua 而不
我有一个包含点的城市边界框。我想根据点的重要性将这个边界框分成子框。例如,具有更多点的区域应该对应更多数量的子框。点数较少的区域应该响应宽度较大的较少框。 我知道一个好的数据结构是四叉树或者 KD 树
我正致力于用 C++ 实现四叉树,在过去的一段时间里,我一直无法解决我的段错误。问题是,我到处都有指点,但不太确定我的问题出在哪里。我已经用不同的语言实现了我的代码,只是想测试我的 C++ 技能,但这
我无法递归地将四叉树中的一组子节点折叠到它们的父节点中。添加、删除和 segmentation 工作正常,但是当从树中删除足够多的元素时,树不会将未满节点折叠到父节点中然后删除它们。 谢谢。 [编辑]
我一直在寻找在我的 2D 模拟中实现四叉树的方法,以使碰撞检测更快,但我发现这个概念很难掌握。sim 运行良好,因为它现在只是一旦我超过 160-180 个粒子,它就会变得非常慢,因为碰撞检测绝对不必
我们有 >25 MB 的静态四叉树数据,我们希望将其作为跨平台应用程序的一部分提供,然后可以通过应用程序代码搜索这些数据,以获取靠近用户当前 GPS 位置的位置的详细信息。 我们希望在不将所有数据加载
我目前正在开发 2D 射击类型的游戏,并且我正在使用四叉树进行碰撞检测。我编写了一个工作四叉树,可以正确地将我的 Actor 插入它们在树中所属的节点/叶子中。但是,我遇到了一些问题。 首先,我如何实
我想比较 R-Tree 和 Quadtree 的地理空间数据。虽然那里有文献,但我很难找到涵盖真正基本比较的文档。所以我决定问这个问题。 在我看来,R-Tree 的优点是平衡,树没有空叶。 缺点是,插
好的。我设法为我的碰撞检测算法制作并使用了 QuadTree,它工作得很好。我有我的敌人并将他们放在四叉树中,而不是检索可能与我的英雄发生冲突的候选人。这是 hitTestObject() 的多次重复
问题 假设我知道希尔伯特曲线面和四叉树,例如 4/032212303102122 (第 4 面,第 15 层)。 或者我可能知道 S2 Geometry CellId,例如 9749618424903
这篇文章是针对我之前的问题建议的 map reduce 实现:“How to optimize scan of 1 huge file / table in Hive to confirm/check
我是一名优秀的程序员,十分优秀!