当前位置: 首页 > 知识库问答 >
问题:

圆间掠碰

柳玄裳
2023-03-14

我正在将游戏原型中的对象建模为圆圈。每个物体都有质量、半径、速度和位置。没有两个物体具有相同的质量和半径。

我必须遵循计算它们之间弹性碰撞的代码,但我注意到,结果总是好像圆圈相互撞击一样。

private void handleCollision(JumpObject a, JumpObject b) {
        double newVelAX = (a.getVelocity().x * (a.getMass() - b.getMass()) + (2 * b.getMass() * b.getVelocity().x)) 
                / (a.getMass() + b.getMass());
        double newVelAY = (a.getVelocity().y * (a.getMass() - b.getMass()) + (2 * b.getMass() * b.getVelocity().y)) 
                / (a.getMass() + b.getMass());
        double newVelBX = (b.getVelocity().x * (b.getMass() - a.getMass()) + (2 * a.getMass() * a.getVelocity().x)) 
                / (a.getMass() + b.getMass());
        double newVelBY = (b.getVelocity().y * (b.getMass() - a.getMass()) + (2 * a.getMass() * a.getVelocity().y)) 
                / (a.getMass() + b.getMass());

        a.getVelocity().setLocation(newVelAX, newVelAY);
        b.getVelocity().setLocation(newVelBX, newVelBY);
}

我需要处理这样的情况,其中一个圆以一个斜角撞到另一个圆(如果需要的话,我可以稍后再画一个图),比如当一个小圆经过时,它几乎没有碰到一个大圆的边缘。

我如何修改我的碰撞算法来解释一个圆击中另一个的位置?

共有1个答案

仲孙昊焱
2023-03-14

http://gamedev.tutsplus.com/tutorials/implementation/when-worlds-collde-simulating-circle-circle-collistions/

http://processing.org/examples/circlecollision.html

 类似资料:
  • 《劫掠轩辕剑》是一部经典的RPG游戏作品,第一次发布于2002年11月7日。由于年代久远,加上当时的网络安全环境比较差,导致最初的发布版已经被破坏,网上找不到能正常运行的版本了。本发布版不仅完善了游戏引擎,也改进并完善了游戏开发工具链,并公开全部的源码(源码使用VS2012编译)。

  • 我正在编写软件,扩展圆-矩形碰撞检测(交集),以包括对碰撞的响应。圆边和圆矩形是相当直接的。但一圈又一圈地把我难住了。 例如,在离散事件模拟中,让两个圆碰撞,一个红一个绿。我们可能会出现以下情况: 在它们碰撞后,我们可以立即: 这里的RIP和GIP是在前一个时钟滴答的圆圈的位置。在当前时钟滴答时,在RDP和GDP处检测到冲突。然而,当两个圆位于RCP和GCP时,碰撞发生在时钟滴答之间。在时钟滴答声

  • 有没有数学方法可以求出两个圆圈碰撞所需要的时间?如果我能得到那个时间值,我就能把圆圈移动到那个时候的位置,然后在那个点上碰撞它们。 编辑:等速

  • 我试图对上皮细胞空间的内部进行建模,但我被困在圆柱形空间内部边缘的运动中。基本上,我正在尝试实现StickyBorders,并将这些边界上的代理保留在我正在创建的圆柱形空间中。 有没有办法在Repast Simphony中使用柱坐标?我找到了这个例子(https://www.researchgate.net/publication/259695792_An_Agent-Based_Model_of

  • 我有一个问题,我必须选择部分在一个圆内的所有正方形(想想像素)(即使圆只穿过正方形的一个小角,但如果它穿过角顶点中的一个就不是)。半径是像素大小的整数倍。 问题是圆心在像素之间,即在四个像素的角顶点上。 我只想访问每个像素一次。 例如,我想选择以下图像中的所有白色像素: 对于圆心位于像素中心的圆,这不是问题,我可以使用Bresenham算法的通常形式:

  • 我在StackOverflow上找到了这个例子: 单独使用css绘制圆 这太好了。但是我想知道如何修改那个例子,这样我就可以在圆圈中间包含文本了? 我还发现了这一点:在CSS(像iphone通知徽章)中垂直和水平居中的圆形文本 但出于某种原因,这对我不起作用。当我创建以下测试代码时: 我得到的不是圆形,而是椭圆形。我正在尝试使用代码,看看如何使其工作。