danglingPointer
danglingPointer

Reputation: 916

How to detect if a ball will collide with another, and the normal vector of the collision?

So I have a 2D game involving balls (circles) colliding. I want to be able to detect if two balls will collide before it happens, and the normal vector of the collision if a collision is going to happen. Take a look at the below picture:

Determining if balls will collide

Essentially a normalized vector represented by the red arrow is what I am interested in knowing. How can I figure that out any frame most efficiently, given I know the following:

Upvotes: 0

Views: 458

Answers (1)

zxcvb1
zxcvb1

Reputation: 26

Lets assume: r1 radius of green ball (x1,y1) the position of green ball r2 radius of blue ball (x2,y2) the position of blue ball

The distance between the balls is d^2 = (x2-x1)^2+(y2-y1)^2 Collision occurs when d^2 = (r1+r2)^2

The vector is just (x2-x1,y2-y1) when d=r1+r2

Upvotes: 1

Related Questions