Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

mihuljica

Circle - Rectangular collision detection

This topic is 5763 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I''m trying to develop another Arkanoid clone in openGL/VS. At the moment I''m using vectors to detect collision between the ball and paddle. vector3 v1(-(m_sprite.position().x - m_sprite.get_frame_width() / 2.0f), 0.0f, 0.0f); vector3 v2(0.0f, m_sprite.position().y + m_sprite.get_frame_height() / 2.0f, 0.0f); vector3 top_left = v2 - v1; It would be a lot more accurate to have an algorithm that detects only circle of a certain radius. "There can be no process-based definition of intelligence. It is a resemblance between two individuals, one real and other prototypical."

Share this post


Link to post
Share on other sites
Advertisement
quote:
Original post by mihuljica
I''m trying to develop another Arkanoid clone in openGL/VS. At the moment I''m using vectors to detect collision between the ball and paddle.

vector3 v1(-(m_sprite.position().x - m_sprite.get_frame_width() / 2.0f), 0.0f, 0.0f);
vector3 v2(0.0f, m_sprite.position().y + m_sprite.get_frame_height() / 2.0f, 0.0f);
vector3 top_left = v2 - v1;

It would be a lot more accurate to have an algorithm that detects only circle of a certain radius.



I guess I should make a question as well...

My question is where can I get a good source, tutorial or code for detecting a collision between the circular and rectangular object using vectors?





"There can be no process-based definition of intelligence. It is a resemblance between two individuals, one real and other prototypical."

Share this post


Link to post
Share on other sites
Hi Mihul,

regarding your questions, the best way to find out if a circle as collided with a rectangle is to find out if the circle is inside the 4 plans which make the rectangle.

All you need is to know the ray of the circle, the position of a point on that plan and the normal to that plan. Using the dot product you can find if it''s inside a plan or outside a plan.

Here''s the algorithm in pseudo-code:

FOR EACH PLAN.
- Find the vector between the Circle position Cp (center) and the point located on the plan Pp (Formula must be written this way (Distance_Vector = Pp - Cp).

- Make sure that the normal of the plan is normalize
- Calculate the Dot product between the plan Normal and the Distance Vector.

- if this value is inferior to (Negative Ray) the Circle is outside, otherwise the Circle is inside.


- If outside, no collision are taking place, if inside, check the next plan.


ONCE ARE THE PLAN ARE CHECK:

If the circle was inside every plan, than it''s definitively inside the Rectangle, otherwise it''s outside.



I think this should do the trick.


Nick

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!