假设我有以下内容:
我该如何确定:
我正在寻找一个完整的公式/算法,而不是数学课程本身.
我正在尝试寻找其他注册冲突的方法(除了OnCollisionEnter()和之外OnCollisionExit()).我目前正在使用Physics.OverlapBox(),但我需要有关碰撞的更多信息; 即,正常,点.
我可以使用Physics.BoxCast(),但问题是它移动一个给定距离的盒子,使用maxDistance = 0f将无法工作.
我需要一种检查碰撞类似的方法,Physics.OverlapBox()除了它还会返回有关转换中所有碰撞的信息.
任何帮助表示赞赏.谢谢.
我正在创建一个2D游戏,并希望测试OBB(Oriented Bounding Box)和Circle之间的碰撞.我不确定这样做的数学和代码.我正在用c ++和opengl创建游戏.
我正在编写扩展圆形-矩形碰撞检测(相交)以包括对碰撞的响应的软件。Circle-edge 和 circle-rectangle 是相当直接的。但是圈圈让我难住了。
例如,在离散事件模拟中,让两个圆圈相撞,一个红色一个绿色。我们可能会遇到以下情况:

在它们发生碰撞后,我们可以立即得到:

这里 RIP 和 GIP 是前一个时钟滴答时圆圈的位置。在当前时钟滴答上,在 RDP 和 GDP 检测到冲突。但是,当两个圆圈位于 RCP 和 GCP 时,时钟滴答之间会发生冲突。在时钟滴答时,红色圆圈向下移动 RVy,向右移动 RVx;绿色圆圈向下移动 GVy,向左移动 GVx。RVy 不等于 GVy;RVx 也不等于 GVx。

当圆心之间的距离小于或等于圆的半径之和时,即发生碰撞,即在上图中,d <= ( Rr + Gr )。在 d < ( Rr + Gr ) 的碰撞中,我们需要在调整圆的速度分量之前将 DP 定位回 CP。在 d == ( Rr + Gr ) 的情况下,不需要重新定位,因为 DP 位于 CP 处。
这就是问题所在:我如何回到 CP。一些作者建议应用下图中由 p 给出的渗透率的二分之一。

对我来说,这是完全错误的。它假设两个圆的速度矢量相等,但在本例中并非如此。我认为渗透与计算有关,但如何躲避我。我确实知道这个问题可以改写为直角相似三角形的问题,我们想在其中解决 Gcdy 和 GCdx。

碰撞本身将被建模为弹性的,并且惯性交换的数学已经到位。唯一的问题是在碰撞时放置圆圈的位置。
我正在实现(在C++中)一种方法来检测在2d平面上两个静态的轴对齐形状之间何时发生重叠.形状是正方形或圆形,因此有三种情况我需要考虑重叠:方形,圆形和圆形方形.
方形和圆形也很简单,但我很难在网上找到关于计算方形圆重叠的正确算法的任何可靠信息.
我知道我可以将方块嵌入圆圈内(反之亦然)作为一种粗略的方法,但我对于更精确地做到这一点的最干净的方法感兴趣?
在线研究表明这个问题有一个"正确"的答案,但尚不清楚答案究竟是什么.
我已经找到了关于如何让它工作的好主意(很好),到目前为止我提出的每个解决方案都是丑陋或无法工作.我所拥有的是一个圆形的精灵,敌人.然后我有一个箭头形状的精灵.
当检查敌人中箭头的碰撞时,我会使用CGRectIntersect(rect1, rect2)
但是......圆圈不是矩形!碰撞很恶心.
所以我的问题是,如何检查圆形物体内的碰撞?我应该制作许多作品,还是有为此目的制作的东西?
我想检测圆形和矩形之间的碰撞,但不知道如何.
我知道如何使用毕达哥拉斯定理检测圆与圆之间的碰撞,这是:
(x2 - x1)^ 2 +(y2 - y1)^ 2 - (r2 + r1),但检测碰撞的算法是什么
在C或C++编程语言中的圆形和矩形之间.
所以我有一个Circle结构体,非常简单,如下所示:
public struct Circle
{
public Circle(int x, int y, int radius) : this()
{
Center = new Point(x, y);
Radius = radius;
}
public Point Center { get; private set; }
public int Radius { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个PhysicsEnity看起来像这样的课程:
public class PhysicsEntity
{
public int Width { get; protected set; }
public int Height { get; protected set; }
public Vector2 Position { get; set; }
public Vector2 Velocity { get; set; } …Run Code Online (Sandbox Code Playgroud) 我想在 P5.js 中使用一种形状(例如矩形)作为另一种形状(例如圆形或线条)的蒙版或剪切路径
我可以看到使用图像作为蒙版的解决方案,但不能看到形状。似乎mask()不是形状的函数:https :
//p5js.org/reference/#/p5.Image/mask