- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究各种碰撞检测算法,其中之一是扫描和修剪。我想我对它的工作原理有很好的了解;您为每个轴存储一个排序的端点列表,并且在每次更新期间我必须保持列表排序。以下是我发现的帮助我理解此算法的网页之一的链接:
http://jitter-physics.com/wordpress/?tag=sweep-and-prune
但是,我不太清楚代码中是如何实现时间一致性的。我知道它利用了对象在连续时间范围内移动很少的事实,但我不太清楚它是如何实现的。
有人可以对这种情况有所了解吗?
最佳答案
+1 的问题,但您的回答可能是错误的;在排序(扫描)阶段,在一个模拟步骤到下一个模拟步骤之间利用时间相干性。这是维基百科的摘录Sweep and Prune :
Sweep and prune exploits temporal coherence as it is likely that solids do not move significantly between two simulation steps. Because of that, at each step, the sorted lists of bounding volume starts and ends can be updated with relatively few computational operations. Sorting algorithms which are fast at sorting almost-sorted lists, such as insertion sort, are particularly good for this purpose.
start.x
进行了排序和
end.x
并且根据结果,我们也执行了狭窄阶段以找到实际的碰撞对象。现在,对于 t = 2,除非您的模拟具有可以传送(消失并重新出现在其他地方)的对象,否则这些对象将在 t = 2 时从它们的 t = 1 位置略微移动。在 t = 1 和 2 之间,如果
X
不是很多(时间一致性),那么我们为 t = 1 创建的排序列表通常会为到达 t = 2 的排序列表提供一个良好的开端,因为对于 t = 2 旧列表非常接近完美 -排序状态。现在,通过使用诸如
insertion sort 之类的东西,这对于一般情况可能会很昂贵,但在这种几乎排序的情况下会很好地工作,可以快速获得 t = 2 的完美排序列表。
关于collision-detection - 扫除和修剪 : where does temporal coherence come in?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10425512/
我用 Java 创建了一个简单的 2d 物理引擎,它使用圆形射弹和直墙。目前,每一帧,每个射弹的位置都会提前velocity * (1/fps) .速度随后更新,每帧一次。碰撞检测使用先前和当前位置以
我有一个 CollisionHandler 类,它有 OnCollisionEnter 方法。游戏中的每个 collideable 实体都有 CollisionHandler 作为组件。因此,当 2
我目前正在编写像 Breakout 这样的游戏,我想知道如何正确地将球从表面上弹开。 我采用了将速度旋转 90 度的幼稚方式,即: [vx, vy] -> [-vy, vx] 哪个(不出所料)效果不佳
这个问题一定存在于某个地方,但我不确定它会被称为什么。 在高度图之后,存在直角三角形地形。每个三角形的每个点都从高度图中获取其高度 (y)。 如果角色位于一组特定的坐标,您可以计算出他们在哪个三角形中
我正在做一个2D滚动大理石的项目。我可以检测出大理石何时撞到了盒子的角落,但是我无法弄清楚大理石在撞到角落时应该有什么行为。我需要弄清楚如何重新放置球,使其不与盒子重叠。通过框到框的碰撞,就像将框彼此
是否可以为实体定义更准确的自定义形状碰撞框而不是矩形?请让我知道是否可行以及如何实现? 最佳答案 当然可以,并且有多种可能的解决方案: Box2D: 是一个很棒的物理引擎,可作为 ImpactJS 的
我正在开发一款 2D 游戏,其中包含高速射弹,这些射弹会撞击高速(并且可能旋转得非常快)的多边形目标对象。我一直在试验和寻找适合我的强大碰撞检测算法。 如果快速旋转不是一个因素(即 0 或慢速旋转),
我正在制作一款平台游戏,其中有玩家和一些 Prop 。为了检查碰撞,我使用了 matterjs collisionactive 函数: this.matter.world.on("collisiona
我已经习惯于使用矩形进行碰撞检测,现在我有点难住了。我正在处理类似菱形的形状,在过去的几个小时里,我一直在试图找出如何检查碰撞。 我尝试检查第一个对象的四个点是否在第二个对象的点内,但这只是一个框(我
最初,两个半径为 R1 和 R2 的非接触球体处于静止状态。 然后在时间 = 0 时分别给它们两个加速度 a1 和 a2。查明他们是否会接触。它们的初始位置分别表示为 (x1,y1,z1) 和 (x2
我目前正在学习使用 LWJGL 和 OpenGL 的 ThinMatrix 3d 游戏开发教程。我正在尝试在我的游戏中实现碰撞检测。我已经准备好检测 AABB 与 AABB 碰撞的代码,但似乎无法弄清
如何在 3D 空间中有效地找到无限线和 AABB 之间的最近点? 我有一个简单的解决方案,它涉及找到距离 AABB 的所有 12 个边缘最近的点,并选择最接近的对,这很有效,但性能不是很好。我的用例需
凹面多边形之间有什么好的检测算法吗?我将不胜感激,到目前为止,我只找到了用于检测凸多边形之间的算法。 最佳答案 您可能会发现this论文很有趣。 关于collision-detection - 凹多边
我在哪里可以阅读更多关于游戏或具有交互性的应用程序的基本 2d 碰撞检测的信息? 编辑:Canvas 游戏的 javascript 怎么样? 最佳答案 要知道的最重要的定理是分离轴定理 (SAT)。基
我最近遇到了 this video并想实现类似的东西。基本方法很明确:我必须对图像进行阈值处理并检查虚拟对象是否与剩余前景发生碰撞。 我不想自己实现物理,而是想使用像 Box2D 这样的引擎。但是,如
我似乎无法让海龟在相互接触时死亡。只有当他们在同一个补丁上时,我才能杀死他们。有这样的功能吗? to killturtles if contact? [die] end 最佳答案 没有,但假设你的乌龟
OBB具有位置(x,y),速度(x,y)和方向(Matrix)。给定定期更新,OBB必须彼此冲突,返回被认为成功的举动的一部分。 我已经看过GPWiki上的Polygon测试-http://gpwik
你究竟是如何实现碰撞检测的?所涉及的费用是多少?不同的平台(c/c++、java、cocoa/iphone、flash、directX)对计算碰撞有不同的优化。最后,是否有库可以为我做这件事,或者我可
我正在尝试在我的物理引擎中赋予形状圆度/曲率。 我知道在数学上定义曲线的各种方法;例如贝塞尔曲线、椭圆等。但是我不确定哪种方法最适合在我的物理引擎中使用,因为必须考虑每种方法的速度、构造可行性和灵 a
我希望您对这个问题提出建议... 为简单起见,我将只考虑 x 轴。 对位置 10 的对象进行成像,其宽度也是 10 个单位,每秒向前移动 100 个单位,并且由于低帧,每次更新时它应该移动 80 个单
我是一名优秀的程序员,十分优秀!