I have a collection of N circles in the plane with various position and radius. Circles move around according to one force and become bound to each other once they overlap. I need a fast way to determine if a circle is overlapped/overlaps another, to determine the circle's equations of motion during a time step. Once circles have overlapped, they are bound, so it's easy to remember that relationship. The problem is to evaluate when circles overlap for the first time. Think of cheerios floating on milk.
Obviously I have thought of using a KDTree or a Delaunay Triangulation, but these only take into account the circle centers, not their radius, so the closest circle in a DT Trianle isn't necessarily overlapping, while another might be.
I've read somewhere that a MWVD might work, but I don't understand how that would work. D Eppstein has a couple of papers out on Mobius Transformations, and that too is over my head, but it looks like it's related. Can anyone point me in the right direction ?