我有圈子(可以有兩個以上)正朝着一個點移動。到目前爲止,它們在接近時會重疊。我該如何做到這一點,以便它們不相交,但仍然朝着這一點邁進?
P.S .:我正在使用Java。
編輯:
- 圓圈不遵循物理定律的球,他們 代表生物體(無關)。
- 我已經有碰撞檢測工作
- 圓圈不粘在一起,它們根本不能相交。
SOLUTION:
public void circleCollision(circle1, circle2) {
double xDistance = circle1.x – circle2.x;
double yDistance = circle1.y – circle2.y;
double distance = xDistance * xDistance + yDistance * yDistance;
double angle = Math.atan2(ydist, xdist);
if (distance < circle1.diameter * circle1.diameter) {
circle2.x = circle1.x + (circle1.width * Math.cos(angle));
circle2.y = circle1.y + (circle1.width * Math.sin(angle));
}
}
感謝:http://awesty.com/blog/2008/09/circle-collisions/
我認爲你需要做進一步的細節,以行爲應該是什麼時候圈發生碰撞。 – 2012-01-08 00:25:42
你想知道如何從頭開始做這件事嗎?或者你想知道Java中可以提供幫助的庫嗎? – 2012-01-08 00:26:39
圖像中的那些圓圈將在*某點*處發生碰撞。 – Perception 2012-01-08 00:41:10