How to calculate time at which two circles will touch? Hopefully this is the right... Stack to ask this at. Apparently there are a bunch of them.
I'm trying to find a formula to detect the time at which two circles in a 2d plane will touch. I'm given the the circles' radii, initial position, velocity, and the vector of forces operating against the circles (such as gravity).
I know that we're looking for when the center of the circles are circle1 radius + circle2 radius apart, so when:
circle1radius + circle2radius = ((circle2x - circle1x)^2 + (circle2y - circle1y)^2)^.5

I also know that, to calculate a circle's position at time t, the formula would be:
circlePosition(t) = circlePosition + (circleVelocity * t) + (.5 * circleForces * t^2)

Combining these concepts, I have a nasty formula that looks something like this:
distance(t, c1, c2) = (((c1x + (c1vx * t) + (.5 * c1fx * t^2)) - (c2x + (c2vx * t) + (.5 * c2fx * t^2))) + ((c1y + (c1vy * t) + (.5 * c1fy * t^2)) - (c2y + (c2vy * t) + (.5 * c2fy * t^2)))^2)^.5

Unfortunately, what I'm hoping to be able to do is get a function instead that returns the time of that touch to me, something like this:
time_of_circles_touch(c1, c2) = ???????

I've been trying for some time now to re-work my distance formula into a time formula, but with no results.
Is there already a formula for this out there?
 A: Your "nasty" formula cannot be right, since it forgets to square the difference in x-coordinates. But basically it is the square root of a sum of squares of quadratic functions. 
The "nasty" equation is fairly easy to solve for linear motion. Instead of looking at the distance $d(t)$, consider the squared distance $d(t)^2$ - this follows a quadratic equation in $t$. Solving $d^2(t)=(r_1+r_2)^2$ using the standard quadratic formula gives the two points in time when they touch (if there are two solutions; if the solutions are imaginary the circles miss each other). The first one is the collision time.
A perhaps simpler way of approaching the problem is to realize that if one circle had zero radius and the other a correspondingly larger radius $r_1+r_2$, then the time when they touch will be the same as for the original problem. Same thing if you translate the centers so that the big circle is at the origin. This is basically the standard line-sphere intersection problem in raytracing, and there is a lot of code and neat optimization tricks out there for doing it efficiently.
Going back to the original problem, you basically need to find the intersection of a curve with an origin-centered circle.  If you use accelerations it will be a parabola-sphere intersection (that can have 0, 2 or 4 solutions). This is a fourth degree polynomial that one can in principle solve analytically, but it is painful to code right. For this I would suggest some numerical solver, although that introduces its own headaches since you want to find the first solution (if any). There has been work done on solving quartics well, but for many problems one should likely start by taking a step back and ask "do I really need to do the quadratic trajectory in the first place? Can I replace it with a sequence of line segments?"
