collision-detection相关内容

平移/旋转后如何重新计算轴对齐的边界框?

当我第一次加载我的对象时,我用最大和最小 (x,y,z) 点计算初始 AABB.但这是在物体空间中,物体在世界各地移动,更重要的是,旋转. 如何在每次平移/旋转对象时重新计算新的 AABB?基本上每一帧都会发生这种情况,每帧重新计算新的 AABB 会是一个非常密集的操作吗?如果是这样,替代方案是什么? 我知道 AABB 会使我的碰撞检测不那么准确,但它比 OBB 更容易实现碰撞检测代码 ..
发布时间:2021-12-19 18:26:38 C/C++开发

锥体碰撞

我希望在一个圆锥体(带有一个圆底.所以它基本上是一个球体的一部分)和一个盒子之间实现碰撞检测.我对它是 AABB 或 OBB 并不太大​​惊小怪,因为转换应该足够简单.我找到的每个解决方案都使用三角锥,但我的锥更像是一个具有角度和距离的“圆弧". 是否有一个简单的解决方案来进行这种碰撞检测?或者是做几种类型的测试的情况?IE.类似于在球体上获取交点,r 是我的圆锥距离,然后测试它们是否在某个 ..
发布时间:2021-12-17 14:41:31 其他开发

Box2D:如何获取静态物体的位置?

我有一个包含静态和动态实体的 Box2D 世界.在碰撞时,我只能得到动态的位置. 是否可以获取静态对象的位置? 注意,这是上一个问题的发展,Box2D:如何获取传感器的位置? 解决方案 我找到了办法——在碰撞中,AABB的中心会给位置 contact.GetFixtureA().GetAABB().GetCenter() ..
发布时间:2021-12-17 10:44:38 其他开发

Actionscript 3.0 Flash 中精灵的碰撞检测

我正在 AS3.0 中制作类似 achtung die kurve 的游戏.到目前为止,我已经完成了 4 个不同玩家的动作,效果还不错. 我现在要进行碰撞检测,以测试“蠕虫"——可以这么说,是与彼此或它自己的尾巴发生碰撞. 据我所知,如果我使用 hitTestObject();它将使用整个对象的注册区域,这将是一个巨大的问题,因为此注册进行了包含所有对象的 4 面注册.所以如果使用它, ..
发布时间:2021-12-17 10:44:28 其他开发

Unity Physics2D.Raycast 击中自身

我正在尝试使用 Physics2D.Raycast 来检查玩家是否在地面上(我知道还有其他方法可以检查玩家是否在地面上,但我认为raycast 是最可靠的).问题是,在我的场景中,它将玩家本身作为命中返回,我真的不明白为什么以及我应该做什么.我的代码(在 PlayerController 中)如下: public bool IsGrounded() {Bounds bounds = this. ..
发布时间:2021-12-11 17:02:37 C#/.NET

如何确定 2D 点是否在多边形内?

我正在尝试在多边形算法中创建一个 fast 2D 点,用于命中测试(例如 Polygon.contains(p:Point)).对有效技术的建议将不胜感激. 解决方案 对于图形,我宁愿不喜欢整数.许多系统使用整数进行 UI 绘制(像素毕竟是整数),但例如,macOS 对所有内容都使用浮点数.macOS 只知道点,一个点可以转换为一个像素,但根据显示器分辨率,它可能会转换为其他像素.在视网膜 ..

圆圆碰撞

我将开发一个二维球类游戏,其中两个球(圆圈)发生碰撞.现在我在确定碰撞点时遇到了问题(实际上,确定它们是否在 x 轴/y 轴上碰撞).我有一个想法,当 2 个球的 y 坐标之间的差异大于 x 坐标差异时,它们会在 y 轴上发生碰撞,否则,它们会在 x 轴上发生碰撞.我的想法正确吗?我在我的游戏中实现了这个东西.通常它运行良好,但有时会失败.谁能告诉我我的想法是否正确?如果不是,那为什么?还有什么更 ..
发布时间:2021-12-06 19:43:55 其他开发

圆线段碰撞检测算法?

我有一条从 A 到 B 的直线和一个位于 C 处、半径为 R 的圆. 用于检查直线是否与圆相交的好算法是什么?它发生在沿圆边缘的哪个坐标处? 解决方案 采取 E 是射线的起点, L 是射线的终点, C 是您要测试的球心 r 是球体的半径 计算: d = L - E(射线的方向向量,从开始到结束) f = E - C(从中心球体到射线起点的向量) 然后通过. ..
发布时间:2021-12-06 19:16:11 其他开发

jQuery/JavaScript 碰撞检测

如何检测两个 元素是否发生碰撞? 这两个 div 是简单的彩色盒子,相互垂直,所以没有复杂的形状或角度. 解决方案 var重叠 = (function () {函数 getPositions( elem ) {变量位置,宽度,高度;pos = $( elem ).position();宽度 = $( elem ).width();高度 = $( elem ).height(); ..
发布时间:2021-12-01 13:20:45 前端开发

为什么我的碰撞测试总是返回“true",为什么图像矩形的位置总是错误的 (0, 0)?

我的collide_rect 功能工作不正常.当它不应该返回时,它总是返回 True.我试过在互联网上寻找,但没有任何效果对我有用.我认为碰撞矩形不知何故没有使用两个精灵的实际坐标.有人可以帮忙吗? 导入pygame导入 pygame.sprite导入系统gameDisplay = pygame.display.set_mode((800,600))pygame.display.set_capt ..
发布时间:2021-12-01 00:01:56 Python

如何检测pygame中两个矩形对象或图像之间的碰撞

我正在制作一个游戏,其中玩家必须使用碗来接住掉落的物品.我有一些列表中物品的图像和一个用于捕捉物品的碗的图像.如果项目到达边界(底部边缘),它们会继续下降并重置到屏幕顶部.我完成了这个允许物品掉落的逻辑,但我不知道如何检测碗和物品之间何时发生碰撞. 我的代码: 导入数学导入pygame随机导入pygame.init()显示宽度 = 800显示高度 = 600game_display = p ..
发布时间:2021-11-30 23:20:52 Python

在 Pygame 中检测多边形和矩形之间的碰撞

所以我试图用 pygame 制作一个我们中间的类型游戏.我刚开始,所以我没有太多东西,现在正在制作地图.但是,我正在努力解决的一件事是碰撞逻辑.地图现在有一个细长的八边形形状,但我认为无论形状如何,我都会使用类似 pygame 多边形的东西.当我运行我现在拥有的代码时,它会检查我的玩家(pygame 矩形)和墙壁(pygame 多边形)之间的碰撞,它说: TypeError: Argumen ..
发布时间:2021-11-26 13:57:08 Python

凸形上的 JavaScript 墙碰撞,卡在角落

这是另一个问题的后续:如何处理玩家与墙角的碰撞 受到其答案中给出的代码的启发,我尝试编写一些新代码. 基本上,在原版中,墙壁滑动在墙壁内侧效果很好,但我想让它也适用于外侧,所以我根据他的技术制作了一个新的基本代码引擎: var aD =[]无功函数开始(){r = 新的 CanvasRenderer(can),我的 = 新场景();window.my = 我的事件处理程序();m ..

两个轴的 2D 平台碰撞问题

我正在使用 C++ 和 SDL 开发一款小型 2D 平台游戏/格斗游戏,但在碰撞检测方面遇到了一些麻烦. 关卡由一组图块组成,我使用 for 循环遍历每个图块(我知道这可能不是最好的方法,我也可能需要帮助).对于角色的每一侧,我将其向该方向移动一个像素并检查是否发生碰撞(我还检查角色是否正在向该方向移动).如果发生碰撞,我将速度设置为 0 并将玩家移动到图块的边缘. 我的问题是,如果我 ..
发布时间:2021-11-26 13:47:11 C/C++开发

检测精灵之间碰撞的最佳方法?

在 2d 游戏精灵中检测碰撞的最佳方法是什么?我目前在 Allegro 和 G++ 工作 解决方案 检测碰撞检测的方法有很多种.如果您使用的是 2d 或 3d 环境,您使用的方法将略有改变.还要记住,在建立碰撞检测系统时,要考虑到您可能想要在游戏中实现的任何物理(大多数下降 3d 游戏都需要)以增强其真实性. 简短版本是使用边界框.或者换句话说,让世界中的每个实体成为一个盒子,然后检 ..
发布时间:2021-11-26 13:43:29 其他开发

HashTables 如何处理冲突?

我在学位课程中听说,如果新的 Key 条目与另一个条目发生冲突,HashTable 会将新条目放入“下一个可用"存储桶中. 如果在使用碰撞键调用返回值时发生这种碰撞,HashTable 如何仍然返回正确的值? 我假设 Keys 是 String 类型并且 hashCode() 返回由 Java 生成的默认值. 如果我实现自己的散列函数并将其用作查找表(即HashMap 或Dict ..
发布时间:2021-11-25 19:39:00 Java开发

检测直角棱镜的重叠

给定一个 3D 坐标系和具有非负起点和非负尺寸的直角棱镜(例如,从 (0, 2, 5) 开始,尺寸为 (9, 20, 5)): 我怎样才能最好地检查另一个直角棱镜是否与坐标系中已有的棱镜相交?最终,目标是对所有存在的棱镜执行此检查,能够测试一个应该足以完成此任务. 信息:起点和大小是非负多头的 3 元组.我正在寻找一种速度适中的优雅解决方案. 我的项目是java,但是任何数学公式、伪代 ..
发布时间:2021-11-25 03:30:41 C#

用于检查凸多面体(方形金字塔)内的 3D 点的算法

我正在寻找强大的碰撞检测算法,并找到了 Christer Ericson 所著的一本很棒的书,名为实时碰撞检测.我正在尝试使用一种特定的算法来检查给定的点是否在凸多面体内部(在 3D 空间中,这些是方形金字塔、立方体和四面体(也就是所有边都是三角形的金字塔)).就我而言,我有一个方形金字塔.点的验证是通过使用给定数量的半空间的相交体积并确定该点是在多面体的边所跨越的所有平面的前面还是后面来完成的. ..
发布时间:2021-11-25 03:25:41 C#

CGAL 网格交叉/碰撞

我想在我的跟踪管道中有一个碰撞检测模块,检测两个不同的网格何时发生碰撞/相互渗透,或者是否存在铰接网格的自渗透.基于渗透的深度,应该有一个惩罚来对抗这种现象.我应该得到碰撞面/顶点的列表才能这样做. 在检查了几个选项后,我决定开始使用 CGAL. 在此链接中,有一个有趣的答案指向了一些示例.(this 和 this).这些示例使用 AABB(轴对齐边界框),这是非刚性网格的建议方法,因 ..
发布时间:2021-11-25 03:09:29 C#

如何使用three.js将飞机“包裹"在球体上?

我对three.js比较陌生,我试图定位和操纵一个平面对象,以产生放置在球体对象(或任何与此相关的)表面上的效果,以便该平面采用以下形式物体表面.目的是能够稍后在表面上移动飞机. 我将平面定位在球体的前面,并通过平面的顶点进行索引,向球体投射光线以检测与球体的交点.然后我尝试更改所述顶点的 z 位置,但没有达到预期的结果.谁能给我一些有关如何使其工作的指导,或者确实建议另一种方法? 这 ..
发布时间:2021-11-25 02:27:41 前端开发