【发布时间】:2012-10-16 16:02:24
【问题描述】:
我有一个大圆圈和大约 30 个位于大圆圈内的小气泡。小气泡出不了大圆,当一个小气泡遇到另一个小气泡时,它们会偏向相反的方向。
这是两个小圆圈偏转的代码:
var xVelocityBubble1 = Math.random();
var yVelocityBubble1 = Math.random();
var xVelocityBubble2 = Math.random();
var yVelocityBubble2 = Math.random();
moveBubbles = function() {
xbubble1 += xVelocityBubble1;
ybubble1 += yVelocityBubble1;
xbubble2 -= xVelocityBubble2;
xbubble2 -= yVelocityBubble2;
if (Math.sqrt(Math.pow(xbubble1 - xbubble2, 2) + Math.pow(ybubble1 - ybubble2, 2)) < radius * 2) {
xVelocityBubble1 *= -1;
yVelocityBubble1 *= -1;
xVelocityBubble2 *= -1;
yVelocityBubble2 *= -1;
}
}
现在,问题来了。正如你在这张照片上看到的,有时我的气泡会碰撞,我不知道为什么。一切正常,直到一个圈子崩溃,然后突然越来越多的气泡陷入战争。看看圆圈 375、240,330 和 410。首先我认为这可能与不同的速度有关,但这不是问题所在。有人知道吗?
【问题讨论】:
-
气泡会改变方向吗?如果是,什么时候?如果看起来他们没有,那么让它们以不同的颜色显示可能会很有用,以确保......你所有的数学看起来都是正确的(除了可能将
标签: javascript canvas geometry square-root