javascript - 检查大量对象的碰撞 JS

标签 javascript object collision-detection collision

我一直在使用数组 allShapes。该数组由具有相同类型属性的对象组成,例如每个对象都有一个 .x 值和一个 .y 值。

每个形状都有一个“半径”,因此可以轻松完成检测。对于每个物体,半径完全相同。它等于 10。

我怎样才能有效地创建一个函数来检查一个形状是否与另一个形状发生碰撞?提前致谢!

var allShapes = [{70,30},{40,90},{287,245}];
// allShapes[0].x = 70
// For each object, there is a .x and .y value

最佳答案

如果简单的 O(n^2) 解决方案(测试每个对象与所有其他对象)不够有效,请选择一种众所周知的空间分区算法。有 kd 树、八叉树、四叉树、BSP 树等。 也许你应该从一个简单的网格开始。将您的域划分为多个单元格,并按单元格对您的对象进行排序。对于给定的候选对象,使用相同和所有相邻单元格中的所有对象进行测试。

关于javascript - 检查大量对象的碰撞 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43660717/

相关文章:

asp.net - 需要生成一个json数组,然后循环遍历值

javascript - 将 HTML-Select 附加到输入并在用户单击“保存”按钮后存储它们的值

c# - 大量物体的碰撞检测

android - 球碰撞 : Balls Stick Together

javascript - 闭包编译器不会删除未使用的属性

javascript - 隔离仅限于属性的指令的范围

flash - 对网页上的嵌入对象使用 wmode ="transparent"、 "opaque"或 "window"之间的差异

java - 如何从 Java 类中的函数访问主类对象?

java - 将元素添加到数组时,对象数组未初始化新对象

java - 多边形相交失败,碰撞 "size"太大