mirror of
https://github.com/TheAlgorithms/Python.git
synced 2025-03-12 09:39:49 +00:00
Merge b0de73b1f15b2270c7b9a1b328e9d3f5f3996ea0 into e59d819d091efdb30e385f4ecfe9ab5d36c3be71
This commit is contained in:
commit
077d0fa763
23
physics/collisions.py
Normal file
23
physics/collisions.py
Normal file
@ -0,0 +1,23 @@
|
||||
# Basic implementation of the collision of two circles.
|
||||
def circle_collision(
|
||||
fpos: tuple[float, float, float], spos: tuple[float, float, float]
|
||||
) -> bool:
|
||||
# difference by XY axes
|
||||
dx = fpos[0] - spos[0]
|
||||
dy = fpos[1] - spos[1]
|
||||
|
||||
# Euclidean distance between the centers of circles
|
||||
distance = pow((pow(dx, 2) + pow(dy, 2)), 0.5)
|
||||
|
||||
# minimum possible distance between circles, without collision
|
||||
min_distance = fpos[2] + fpos[2]
|
||||
collide = distance < min_distance
|
||||
|
||||
# If actual distance smaller than minimal possible, cirlces collides
|
||||
return collide
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from doctest import testmod
|
||||
|
||||
testmod()
|
Loading…
x
Reference in New Issue
Block a user