separating-axis-theorem

    0热度

    2回答

    我目前正试图实现自己的SAT(分离轴定理)碰撞检测系统,但遇到了问题。上线34我收到此错误信息: line 34, in collision axis = (v[1], -v[0]) TypeError: 'int' object is not subscriptable 奇怪的是v不是一个整数,这是一个元组。 下面的代码 import math import pygame WIDTH =

    0热度

    1回答

    我一直试图根据Randy Gaul's C++ Impulse Engine基于Randy Gaul's C++ Impulse Engine来实现圆和多边形之间的碰撞检测,紧跟在代码后面,但算法从不返回true。这个是JSFiddle。 (该机构正在使用的方便HTML5的Canvas API渲染) 代码(只是碰撞检测)的一个片段: const circPoly = (a, b) => {

    2热度

    1回答

    SAT的最低翻译向量在所有情况下总是正确和准确吗? 我通过迭代所有可能的轴来计算它,并检查每个轴上的重叠,然后跟踪哪个轴具有最短重叠并将其用作穿透矢量。 正如你可以看到,一些计算的最小平移向量并不总是正确的。 在这短短的提取物,我觉得渗透载体,我想你们帮我发现什么是错的: direction = Vector.Sub(me.Verts[k-1], me.Verts[k]) axis

    9热度

    1回答

    我不知道从哪里开始。显然CGRectIntersectsRect在这种情况下不起作用,你会看到为什么。 我的UIView的子类,在其内部具有一个UIImageView被放置在了UIView的确切中心: 我然后旋转自定义的UIView到保持内的UIImageView的帧同时仍然能够执行CGAffineRotation。最后生成的框架看起来是这样的: 我需要防止用户这些UIImageViews的相交,

    4热度

    1回答

    我无法计算沿一个轴的3D穿透向量。我已经实施了SAT,它的工作原理。我想计算我需要抵消第一个箱子的数量,因此它总是坐在其他箱子上面。做简单的盒子与非常长的盒子铸造。 我应该如何继续找到偏移,这会推动指定轴方向上的一个对象。

    -2热度

    1回答

    我正在构建一个游戏,我目前正在研究物理。 我正在使用SAT算法来检测碰撞。在字符(AxisAlignedBoundingBox)和某些矩形(带有旋转)之间的冲突为。 一切正常,除在特定情况下在角落附近碰撞。 (这是一个相当已知的问题,但我没有找到任何好的解决方案)。 在实施例1,在第二场景中的字符应该向上移动(留在障碍物)。 它正好向左移动。 对例2,在第二个场景中字符不应该起来。有时会得到。 我

    3热度

    1回答

    目前我有一个迷你物理游戏,它使用分离轴定理来进行碰撞检测和响应,但是当我发现没有太多关于碰撞检测和响应的文档时,我停下来了。使用SAT碰撞检测与其他形状碰撞后的物体速度。 下面是我正在谈论的两个图。 任何人都可以点我到正确的方向吗? 碰撞后可以给出的所有信息是最小穿透向量。 编辑:发现了一些代码网上说的这个非常相关的,但我不明白: void CBody::ProcessCollision(CBod