Merge b0de73b1f15b2270c7b9a1b328e9d3f5f3996ea0 into e59d819d091efdb30e385f4ecfe9ab5d36c3be71

This commit is contained in:
Alcorhytm 2025-02-09 10:36:37 +03:00 committed by GitHub
commit 077d0fa763
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

23
physics/collisions.py Normal file
View 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()