repulsiveruby.physics
module
Source code
def norm(vec):
sum = 0.0
for x in vec:
sum += x * x
return sum ** 0.5
def twoBallDistance(ballA, ballB):
return norm((ballA.position[0] - ballB.position[0],
ballA.position[1] - ballB.position[1]))
def twoBallCollided(ballA, ballB):
return twoBallDistance(ballA, ballB) <= ballA.radius + ballB.radius
def ballGroupCollided(ballGroup):
num_balls = len(ballGroup.sprites())
for i in range(num_balls):
for j in range(i + 1, num_balls):
ballA = ballGroup.sprites()[i]
ballB = ballGroup.sprites()[j]
if twoBallCollided(ballA, ballB):
return True
return False}
Functions
def ballGroupCollided(ballGroup)
-
Source code
def ballGroupCollided(ballGroup): num_balls = len(ballGroup.sprites()) for i in range(num_balls): for j in range(i + 1, num_balls): ballA = ballGroup.sprites()[i] ballB = ballGroup.sprites()[j] if twoBallCollided(ballA, ballB): return True return False}
def norm(vec)
-
Source code
def norm(vec): sum = 0.0 for x in vec: sum += x * x return sum ** 0.5}
def twoBallCollided(ballA, ballB)
-
Source code
def twoBallCollided(ballA, ballB): return twoBallDistance(ballA, ballB) <= ballA.radius + ballB.radius}
def twoBallDistance(ballA, ballB)
-
Source code
def twoBallDistance(ballA, ballB): return norm((ballA.position[0] - ballB.position[0], ballA.position[1] - ballB.position[1]))}