什么是 AABB - 碰撞检测?

2024-04-24

嗨,我正在制作一个体素游戏Java在研究我需要学习的所有不同东西时,我注意到很多游戏都使用AABB用于碰撞检测。然后我记得看到AABB在《我的世界》中也有。但是当我用谷歌搜索什么时AABB也就是说,它只是提出了其他人的代码,或者历史书上的某个组织。 Stackoverflow,什么是AABB?


AABB 代表“轴对齐边界框 http://en.wikipedia.org/wiki/Axis-aligned_bounding_box#Axis-aligned_minimum_bounding_box."

这是一种在计算和内存上相当高效的表示体积的方法,通常用于查看两个对象是否可能接触。

由于它是轴对齐的,因此它不一定非常“适合”您的真实 3D 对象。 AABB 检查通常用作粗略的第一近似,以查看对象是否可能发生碰撞。然后,如果 AABB 检查通过,则会进行更详细的检查。

Example:

想象你的世界是二维的,你把它画在一张方格纸上。 你在世界上有一些物体(一个球,一棵树,等等)。要为其中一个对象制作 AABB,请在该对象周围画一个矩形,使线条与纸上的网格线平行。

如果你有两个物体的 AABB,你可以做一些非常简单的数学来看看这些 AABB 是否重叠。如果它们不重叠,那么这两个对象就不可能接触,因此对于碰撞算法来说这是一个简单的早期退出。

这很容易推广到 3D(以及更多维)。

您可能想查看gamedev.stackexchange.com https://gamedev.stackexchange.com/, too.

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

什么是 AABB - 碰撞检测? 的相关文章

  • JavaScript 碰撞检测系统不会忽略被阻止的碰撞

    我在使用迷你游戏开发过程中遇到问题EaselJS我的碰撞检测系统 我需要有人的帮助 当英雄 圆形位图 碰撞一个对象并且第一个对象后面有其他对象时 英雄会与两个对象碰撞 即使第二次碰撞被阻止 也会出现此问题 这是一个图像解释 问题的原因非常简
  • Java游戏中的碰撞检测?

    我正在开发一款游戏 其中存在运动图像碰撞检测的问题 游戏有一艘宇宙飞船和一些小行星 障碍物 我想检测它们之间的碰撞 我怎样才能做到这一点 对于矩形以外的任何物体 碰撞检测通常都很棘手 我过去这样做的方法是为每个对象提供图像和蒙版 例如 像木
  • IOS SpriteKit 碰撞检测:重置对象的位置

    我正在研究碰撞检测 希望当 Object1 向下移动屏幕并最终击中 Object2 时 它会触发 didBeginContact 方法 进而触发 Object1 上的 ResetPosition 这将使 Object1 返回屏幕顶部 我使用
  • 为迷宫墙添加碰撞

    有人可以帮我向我的精灵添加碰撞点吗 我过去有一个代码 我在图像上分层了位图 但相同的代码不能很好地集成用于物理绘制线条 而不是检测图像上黑色 灰色的位置 import random import pygame pygame init WHI
  • 快速轴对齐单元格遍历算法

    给定一个轴对齐的正方形 分为四个大小相等的单元格 A B C 和 D 给定一条从点 s1 到点 s2 的线段 查找该段 如果有 遍历的单元格 按遍历顺序排序 的最快方法是什么 在上面的例子中 正确的结果是 第 1 段 D 分段 2 A B
  • 球与球的碰撞 - 检测和处理

    在 Stack Overflow 社区的帮助下 我编写了一个非常基本但有趣的物理模拟器 您单击并拖动鼠标来发射球 它会弹来弹去 最终停在 地板 上 我想添加的下一个重要功能是球与球的碰撞 球的运动被分解为 x 和 y 速度矢量 我有重力 每
  • 测试两条线是否相交 - JavaScript 函数

    我尝试寻找一个 javascript 函数来检测两条线是否相交 该函数将获取每条线 我们将其称为线 A 和线 B 的两个起点的 x y 值 就是如果相交则返回 true 否则返回 false 函数示例 如果答案使用矢量对象 我很高兴 Fun
  • 碰撞检测和碰撞响应

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

    有没有办法检测 Java Hash map 中的冲突 任何人都可以指出某些可能发生大量碰撞的情况吗 当然 如果你重写一个对象的哈希码并简单地返回一个常量值 那么肯定会发生冲突 我不是在谈论这个 我想知道除了前面提到的之外 在什么情况下会发生
  • WPF:使用旋转方块进行碰撞检测

    参考这个编程游戏 https stackoverflow com questions 505040 developing a robocode type game with net for a school assignment我目前正在建
  • 在 Unity3D 中,“设置”网格的边界会做什么或实现什么?

    在 Unity 代码库中 我看到了这个 the game object currently has no mesh attached MeshFilter mFilter gameObject AddComponent
  • 像素完美的 Android 碰撞检测

    好的 我正在 Android 上开发一款游戏 我需要实现像素完美的碰撞检测 我已经在每个图像周围设置了边界框 每个边界框都经过变换以匹配图像的当前旋转 这一切都很好 我还将每个位图的像素数据存储在数组中 有人可以帮我找出检测像素是否重叠的最
  • 快速的射弹并不总是能击中

    因此 对于我的游戏 有一个快速移动的子弹对象 其精灵大小为 5x5 大约 以大约 30 的速度移动 需要撞击厚度仅为 5 像素左右的相对较薄的 Enemy 物体 子弹以一定的固定距离间隔穿过敌人而不会发生碰撞 I think这是因为子弹移动
  • OnTriggerEnter() 未调用

    我有一个玩家 球体 和 4 个敌人 胶囊 所有敌人都添加了角色控制器 它们还有一个子 GameObject 它具有一个 RigidBody 无质量 无重力 和一个附加的 Box Collider 盒子碰撞器足够大 因此您可以看到盒子内部的球
  • Pygame 根据位置重叠精灵(绘制顺序)

    总的来说 我对 Pygame 和 Python 还比较陌生 所以希望这不是太陌生 I m making a top down RPG and I have two Sprite objects with images that look f
  • 为什么 pygame 上两个移动物体之间的碰撞不起作用?

    我正在用 pygame 做一个蛇游戏 游戏中有两条蛇 我想检测蛇头何时与另一条蛇身体碰撞 对两者都执行此操作 以及当两个头碰撞时的特殊情况 我目前正在做蛇头和另一条蛇身体之间的碰撞 如果其中一条蛇被冻结而另一条蛇在移动 则碰撞效果很好 但如
  • 3D 中三角形到三角形碰撞检测

    我了解两个三角形之间的三角形到三角形的碰撞检测 有人可以解释一下我如何将它与由 1000 个顶点组成的 3D 对象一起使用吗 如何为每个网格创建三角形列表 我必须接受顶点的每个排列吗 这将导致 O n 3 我觉得这非常糟糕 我该如何概括这一
  • Corona/Box2D 检测与非移动静态物体的碰撞

    出于发帖原因 这是我正在尝试做的事情的简单版本 在屏幕上我有一个简单的圆形对象 它是静态的并且不会移动 然后用户可以拖放一条直线 如果该线穿过该圆圈 我希望触发碰撞事件 看来除非其中一个物体正在移动 否则永远不会检测到碰撞 绘制线条时能否检
  • 如何处理同时碰撞以使处理顺序无关紧要?

    假设有3个球同时碰撞 我发现解决冲突的顺序会对最终结果产生影响 这当然没有意义 为了解释和简单起见 考虑 1D 中的 3 个球 质量相同 弹性碰撞 顶部的数字是速度 箭头是方向 假设它们当前都互相接触 即发生碰撞 gt 2 gt 1 lt
  • 厚壁二维迷宫中的碰撞检测

    我必须使用 Windows Forms 为学校制作一个游戏 我的游戏包括用户必须穿过迷宫 我试图阻止我的用户使用碰撞检测直接穿过墙壁 但由于用于表示墙壁的矩形形状不同而陷入困境 这是游戏的图像 https i stack imgur com

随机推荐

  • imageView 中的圆角[重复]

    这个问题在这里已经有答案了 这是我的 xml 布局
  • set 中的哈希表在 python 中如何工作?

    据我所知 set在python中通过哈希表来实现O 1 查找复杂度 虽然它是哈希表 但其中的每个条目set必须是可散列的 或不可变的 所以这种和平的代码引发了异常 gt gt gt dict Traceback most recent ca
  • Google 标签管理器不会将事件推送到 Android 上的数据层

    我正在尝试在我的 Android 应用程序中实现标签管理器 如下本指南 https developers google com tag manager android v4 但由于某种原因我无法将事件推送到数据层 Override prot
  • hibernate中的实体和值类型

    对象级别的实体类型和值类型有什么区别 我知道实体将有一个 id 但值不会 但是为什么我们需要不同的方法来映射实体与值类型 这样做是为了让 hibernate 可以对值类型应用任何优化吗 实体已经定义了其持久保存的表 因此 当实体 A 中有
  • WooCommerce - 在哪里可以编辑由挂钩生成的 HTML?

    我是 WooCommerce 新手 无论如何 我想创建自己的主题 所以我遵循指南并将核心模板文件复制到 mywordpresstheme woocommerce 一切都很好 我正在编辑模板 效果很好 然而 WooCommerce 中的挂钩和
  • C++ 十六进制解析

    我想知道如何将十六进制字符串转换为人类可读的字符串 如果这有意义 这将是我第一次真正遇到十六进制值 所以我仍在学习它们以及如何管理它们 我有一个程序正在从包含原始数据包数据 十六进制 的文件中读取数据 我需要解析这些信息 以便人类可读 我需
  • 如何在Angular2中调用其他组件的方法

    在 addTo component ts 组件中 我有一个方法和构造函数 如下所示 Method addTo ServicePlanId basketSection Constructor constructor private route
  • 模板赋值运算符重载之谜

    我有一个简单的结构Wrapper 通过两个模板化赋值运算符重载来区分 template
  • 将雅虎财经导入Python时遇到问题

    我已经使用 pip 从 PyPI 安装了 yahoo Finance 当我运行以下脚本时 出现导入错误 没有名为 yahoo finance 的模块 from yahoo finance import Share BlackDiamond
  • 如何为 NHibernate 制作内部映射类?

    我为我的映射创建了内部类 并在各处放置了 default lazy false 一段时间后 我决定完全懒惰并删除了此设置 突然之间 几乎所有事情都无法执行 我得到的异常是 无法执行查询 System TypeLoadException 访问
  • Sublime 的 phpstorm 配色方案

    我已经使用 phpstorm 很长时间了 现在我也在 sublime 中工作 因为它有利于快速编辑 并且速度感最好 我想要 Sublime 中 phpstorm 的默认配色方案 那是已经建起来了吗 或者我如何开始创建这样的配色方案 对于使用
  • 以编程方式关闭 Android 手机

    我们可以通过编程方式关闭 Android 手机吗 我正在使用以下代码片段 但它对我不起作用 KeyguardManager keyguardManager KeyguardManager getSystemService Activity
  • AppCompatActivity 不可分配给 Activity

    经过一年的 Android 编码 直到昨天一切都运行良好 今天 升级到 gradle 3 alpha 2 和 studio 3 build 2 后 我发现了一些非常奇怪的事情 This is the declaration of one o
  • 如何理解批处理文件?

    我之前没有使用批处理文件或 shell 脚本的经验 我需要了解相关项目中使用的批处理文件所执行的操作 有没有资源提供批处理文件命令的详尽列表以及每个命令的作用 一旦您熟悉了一般的 BAT 文件信息 使用其他用户在其他答案中发布的一些有用信息
  • 在 Swift 中,如何迭代 UITableView 中的每个单元格,然后获取其属性?

    我有一个通用的 UITableView 我想浏览每个可见的单元格 我怎样才能快速做到这一点 我目前正在我的一个项目中使用它 let cells self tableView visibleCells as Array
  • 当我使用设置数据时,Flutter firestore 会覆盖数据

    我一直在尝试将数据添加到我的 firestorm 数据库中的部分 我有一个集合 gt 文档 gt 数据字段 每当我使用 setData key value 时 它总是会覆盖文档中已有的数据 有没有办法解决 那是因为什么setData obj
  • Windows Phone 8 HttpClient Get 方法返回奇怪的结果

    我正在开发一个 Windows Phone 8 应用程序 它将一些数据发送到服务器 服务器执行该数据并返回结果 可以随时查询服务器以获取当前执行的状态 可以是正在初始化 正在运行或已完成 仅当执行处于完成状态时输出才可用 用户可以选择通过按
  • Extjs 5,数据模型关联和加载嵌套数据

    试图让这项工作 我想在两个对象模型上加载嵌套数据 Ext application name MyApp launch function Ext define MyApp model Address extend Ext data Model
  • 在javascript中读取excel是将长数字转换为指数

    我正在使用 SheetJs 读取 Excel 文件 但问题是它正在转换长数字 例如3577888990098指数般3 52E 12 这个问题并不重复 因为 文件列可以是随机的 系统不会知道哪些是数字 哪些是字符串 按字母顺序 或两者 那么如
  • 什么是 AABB - 碰撞检测?

    嗨 我正在制作一个体素游戏Java在研究我需要学习的所有不同东西时 我注意到很多游戏都使用AABB用于碰撞检测 然后我记得看到AABB在 我的世界 中也有 但是当我用谷歌搜索什么时AABB也就是说 它只是提出了其他人的代码 或者历史书上的某