I want to detect if arbitrarily rotated Text instances overlap.
Using the technique described HERE I can get the axis aligned bounding box (AABB) of a Text instance. If the text is axis aligned, then that AABB is very tight to the actual text. But once you start rotating the text, the area covered by the AABB becomes much greater than the actual area occupied by text:

So AABB are not a very accurate way to detect overlap of rotated text.
Here's a way I can imagine doing it:
- For each text instance t, use the AABB to calculate a set of 4 points defining the arbitrarily oriented bounding box (OBB) B_t that tightly contains the text.
- Test each t for intersection with each other with 2 steps:
- First, do their AABBs intersect?
- If so, use Separating Axis Theorem to determine if their OBBs intersect.
Is the above process a good approach, or is there a better way to do this using some functionality already existing within Matplotlib?