问题标签 [collision-detection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1116 浏览

objective-c - 在 UIView 中显示 UIImageView 的边界框

我编写了一个扩展 UIImageView 的类,以便让我在屏幕上动态生成砖块。砖是 20x10 PNG。

这是我的代码:

然后,我在同一个类中有一个简单的碰撞检测功能:

但是碰撞检测没有很好地执行。边界框似乎比我的图像低一点。如何显示边界框以便我检查碰撞?

如果代码不清楚,我可以提供更多信息。

0 投票
2 回答
2333 浏览

objective-c - iPhone SDK 中的碰撞检测:不准确的 CGRectIntersectsRect

当有两个物体发生碰撞时,我用 CGRectIntersectsRect 检查它们。但是,在它返回“是”(它们碰撞)之前,它们已经重叠。有没有其他方法来检测和解决碰撞?

我的解决方法是比较它们的 Y 轴并在检测到碰撞后将对象彼此远离。

另外,我的一个对象是一个圆圈,iPhone SDK 还有其他功能可以更好地检测碰撞吗?(目前我把圆当作一个矩形,因为它的框架是一个矩形)

0 投票
2 回答
3659 浏览

geometry - 圆矩形碰撞检测完成示例

我需要一种算法来检测圆是否撞到正方形,我看到了这篇文章: 圆矩形碰撞检测(交集)

看起来我应该去找 ShreevatsaR 的答案,但我是个数学傻瓜,我不知道如何完成算法。谁能找到时间为我制作一个完整的例子,我已经在网上搜索过这个,但还没有找到有效的例子。

非常感谢
Soeren

编辑:

好的,这是我的尝试。它不工作,它永远不会检测到任何碰撞。

0 投票
3 回答
1436 浏览

actionscript-3 - 任何人都可以帮助我的平台游戏进行碰撞检测吗?(动作脚本 3.0)

我目前正在制作一个 Flash 平台游戏引擎……但我的碰撞检测需要一些认真的帮助。每当我的角色“跳跃”并降落在碰撞对象上时,他会在碰撞对象的中途停留片刻,然后回到顶部(我希望他在的位置)。如果我继续跳多次,他的影子,如果你愿意,那一瞬间出现的影子会越来越深入碰撞对象,最终让他一路跌倒。这是我的主要课程的代码,如果您需要我澄清任何事情,请询问。

}

0 投票
10 回答
23985 浏览

algorithm - 宽相碰撞检测方法?

我正在构建一个 2D 物理引擎,我想添加宽相碰撞检测,尽管我只知道 2 或 3 种类型:

  • 检查一切与其他一切(O(n ^ 2)复杂度)
  • Sweep and Prune(排序和扫描)
  • 关于二进制空间分区的一些事情(不知道如何做到这一点)

但肯定有更多的选择,对吧?这些是什么?是否可以提供每个的基本描述或描述的链接?

我已经看到了这一点,但我要求提供可用算法的列表,而不是最适合我需要的算法。

在这种情况下,“宽相碰撞检测”是物理引擎用来确定其模拟中哪些物体足够接近以保证进一步调查和可能的碰撞解决的方法。

0 投票
1 回答
1188 浏览

java - 多边形相交失败,碰撞“大小”太大

好的,所以我正在尝试制作一个简单的小行星克隆。一切正常,除了碰撞检测。

我有两个不同的版本,第一个使用 java.awt.geom.Area:

这就像一个魅力......如果你不关心只有 120 颗小行星的 40% CPU :(

所以我在网上搜索了著名的分离轴定理,因为我的数学不太好,所以我从这里获取了实现并将其转换为适合我的 Java 需求:

它工作......有点。实际上,使用这个代码时,小行星的“碰撞壳”似乎太大了,就像小行星的 1.2 倍一样大。我不知道为什么。

这里有两张图片进行比较:
http://www.spielecast.de/stuff/asteroids1.png
http://www.spielecast.de/stuff/asteroids2.png

正如您所希望看到的,图片 1 中的小行星比使用 SAT 代码的图片 2 中的小行星密集得多。

那么有什么想法吗?或者有谁知道我可以使用的具有交叉测试的 Java Polygon 实现?

0 投票
6 回答
53256 浏览

algorithm - 圈圈碰撞

我将开发一个 2-d 球类游戏,其中两个球(圆)发生碰撞。现在我在确定碰撞点时遇到了问题(实际上,确定它们是否在 x 轴/y 轴上发生碰撞)。我有一个想法,当 2 个球的 y 坐标之间的差异大于 x 坐标差异时,它们会在它们的 y 轴上发生碰撞,否则它们会在它们的 x 轴上发生碰撞。我的想法正确吗?我在我的游戏中实现了这个东西。通常它工作得很好,但有时它会失败。谁能告诉我我的想法是否正确?如果不是,那么为什么,还有更好的方法吗?

x轴上的碰撞是指圆的第1、4、5或8个八分圆,y轴是指圆的第2、3、6或7个八分圆。

提前致谢!

0 投票
2 回答
14885 浏览

java - 边界椭圆

我被分配了一个图形模块,其中一部分是计算一组任意形状的最小边界椭圆。椭圆不必轴对齐。

这是使用 AWT 形状在 java (euch) 中工作的,因此我可以使用形状提供的所有工具来检查对象的包含/相交。

0 投票
3 回答
1321 浏览

collision-detection - 碰撞检测

我正在做一个项目,房间里摆满了不同形状的物体。

我正在用油漆画房间,把画面全白,把所有的墙壁/障碍物都涂成红色。

我在不同的文件中绘制每个可移动对象,也使用油漆。

现在,我将房间的地图和对象作为 1 和 0 的矩阵加载到我的程序中。我有一个矩阵作为第一个矩阵,另一个矩阵用于我加载到房间的每个对象。

该物体将能够在房间内自由移动,可以任意距离、任意角度移动,并且可以自行旋转。我应该如何设计一种允许我将对象旋转任意角度并仍然能够检测到碰撞的方法?我的意思是,如果对象可以向上、向下、向左和向右移动,我可以检查两个矩阵以查看它们是否“重叠”任何 1。但是,如果我想将对象旋转 10º,我看不到如何将其转换为矩阵并对照墙壁的矩阵进行检查。

我应该放弃矩阵表示并创建数学区域并处理这个问题,就像我们在 IR^2 微积分中处理它一样,使用一些库吗?在计算方面不是很昂贵吗?

有什么简单的方法可以做到这一点?它不需要是一流的方法,但我将它用于复杂的算法,我不希望在每次迭代中损失太多的计算时间。

0 投票
3 回答
8973 浏览

algorithm - 什么是一个好的、简单的、仅限二维矩形的碰撞检测算法?

我正在为年轻人设计一个碰撞检测游戏教程,所以我希望它尽可能简单,以便于解释。

要求非常简单。世界是二维的,只包含矩形(任意大小)。BSP 甚至四叉树似乎都过大了(再次强调简单性),但我想要比暴力破解所有 n(n-1)/2 可能的冲突更有效的东西。

2D,仅矩形,简单。

谁能指出我可以查找的算法?我正在寻找四叉树算法吗?

编辑:此外,矩形永远不会旋转(我保持简单)。为了让您了解我的工作规模,您的典型用户的笔记本电脑/台式机(不到 5 年)上将运行数百个矩形,这些矩形是用 Python 和 Pygame 实现的。