什么是 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 - 碰撞检测? 的相关文章

  • Actionscript 3.0 Flash 中精灵的碰撞检测

    我正在 AS3 0 中制作一个类似 achtung die kurve 的游戏 到目前为止 我已经完成了 4 个不同玩家的动作 效果还不错 我现在要进行碰撞检测 以测试 蠕虫 可以这么说 是否正在相互碰撞或与自己的尾巴碰撞 据我了解 如果我
  • 为迷宫墙添加碰撞

    有人可以帮我向我的精灵添加碰撞点吗 我过去有一个代码 我在图像上分层了位图 但相同的代码不能很好地集成用于物理绘制线条 而不是检测图像上黑色 灰色的位置 import random import pygame pygame init WHI
  • 简单的拖动物理原理,向左或向右移动时表现不同[重复]

    这个问题在这里已经有答案了 我的代码对于负速度的表现与对于正速度的表现不同 我正在尝试实现平台物理 玩家在 X 方向上有速度 当用户分别按下 A 或 D 时速度会增加或减少 或者当玩家与墙壁碰撞时设置为 0 为了模拟与地面的摩擦力 玩家的
  • 轴对齐边界框和三角形的分离轴测试会产生不正确的结果 (3D)

    我正在做三角形到 AABB 相交测试 我从以下位置获取此示例代码实时碰撞检测作者 克里斯特 埃里克森 作者在给出示例之前在书中所说的内容与示例不同 因此我不确定如何测试其余的轴 a01 a22 Test 九个轴由两者的边组合的叉积给出 Te
  • 两幅图像碰撞的问题

    嗯 这是我的问题 我有两个图像 flakeImage 和 ViewToRotate 我想要的是 如果 flakeImage 触及 ViewToRotate ViewToRotate alpha 0 5 但是当FlakeImage出现在屏幕上
  • 三角形 - 三角形相交测试

    我想知道是否有一些教程或指南来理解和在 3D 环境中实现三角形 三角形相交测试 我不需要知道交叉点发生在哪里 只需要知道发生了交叉点 我本来打算按照理论 pdf 来实现它 但我很困惑 计算三角形 2 的平面方程 如果三角形 1 的所有点都在
  • 如何在pygame中检测两个矩形物体或图像之间的碰撞

    我正在制作一款游戏 玩家必须使用碗来接住掉落的物品 我有一些列表中的项目图像和一个用于接住项目的碗的图像 物品会继续下落 如果到达边界 下边缘 就会重置到屏幕顶部 我完成了这个逻辑 允许物品掉落 但我不知道如何检测碗和物品之间何时发生碰撞
  • 花栗鼠碰撞检测

    我对花栗鼠完全陌生 而且我刚刚使用它几天 所以我猜这是非常明显的事情 但是我找不到任何相关文档 Chipmunk 中是否有任何回调或方法可以告诉您 2 个给定的形状发生了碰撞 如果不是 最好的方法是简单地在精灵上使用 cgrect cont
  • 计算三角形内的格点

    我有一个大三角形的点 我们称之为 a b c a x y 等 现在我想统计这个三角形围成的区域内有多少个积分点 所以我首先看一下皮克定理 我考虑的第二种方法是生成一个以三角形的最大值 最小值为界的点列表 然后检查每个点是否位于三角形内部 我
  • 打砖块游戏中球和砖块之间的碰撞检测[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在打砖块游戏中如何检测球和砖块之间的碰撞 边界框碰撞 http www gamedev net reference articles
  • 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
  • 最小元素错误

    我不是 C 编码员 所以也许这很容易 我有一个 Point 类向量 我想找到 AABB 矩形 最小 x 最小 y 最小 x 最大 y 最大 x 最小 y 最大 x 最大 y 我已经完成了一个 for 循环 保存最小值和最大值 一次用于 x
  • 如何防止可拖动的子元素相互拖动?

    如何防止可拖动子元素在绝对位置相互拖动 就像是 if firstChild position left gt secondChild position left this draggable disabled true 但这只会在停止拖动时
  • Corona/Box2D 检测与非移动静态物体的碰撞

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

    显然很难找到一条线是否存在的答案segment和圆相交 例如 如果你用谷歌搜索 你会发现这个问题 https stackoverflow com questions 1073336 circle line segment collision
  • 用于移动物体的空间数据结构?

    我想知道处理大量移动对象 球体 三角形 盒子 点等 的最佳数据结构是什么 我试图回答两个问题 最近邻和碰撞检测 我确实意识到 传统上 像 R 树这样的数据结构用于最近邻查询 Oct Kd BSP 用于处理静态对象或很少移动对象的碰撞检测问题
  • WPF 路径冲突检测?

    I have two hexagon shapes
  • 快速移动的球与鼠标控制的球拍的碰撞检测问题

    在统一中 我有一个应该击球的球拍 并且球拍直接由鼠标控制 即鼠标使用鼠标轴移动球棒并使用 translate 函数移动球拍 我预计 Unity3d 的物理特性不会直接通过鼠标正确地转换球拍的运动并相应地影响球 我必须编写一些自定义的内容 结
  • 检测哪些 Tilemap 单元与 Unity 中的 Collider2D 发生碰撞

    我有一个Tilemap 这有一个TilemapCollider2D成分 在其上绘制了几个图块 每个图块都有自己的精灵碰撞器形状 然而它们是精灵图块而不是预制件 它们不是使用预制画笔绘制的 我还有一个游戏对象Collider2D a Circ

随机推荐

  • 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也就是说 它只是提出了其他人的代码 或者历史书上的某