Introduction
At this point, we know what the basic 2D primitive shapes are; now it's time to explore if two of them intersect. Some of these intersections are going to be simple to find, others will be a bit more challenging. For example, checking if two spheres intersect takes only a few lines of code, checking if two oriented boxes intersect requires much more work
We are going to cover the Separating Axis Theorem (SAT), more accurately the Hyperspace Separation Theorem in this chapter. The SAT is used to detect collision between arbitrary convex polygons. This makes the SAT algorithm an ideal generac purpose collision algorithm.
A convex polygon is one which does not fold in on its self. If you were to take every vertex of a polygon and stretch a rubber band around all the vertices, you would end up with a convex shape. In a convex polygon, a line between any two points on the polygon never goes outside of the polygon.