>Has anyone any fast / clever ways to determine the intersection status of
>two arbitrary cylinders? I am fairly sure there aren't analytic
>but maybe there is some rapidly convergent iterative scheme?
Of course there is an analytic solution, may be not simple but there is.
Here some clues:
Let's suppose for a moment that the two cylinders are of infinite length.
Compute the distance between the two axis of the cylinders (you'll
find the answer to how to do that in the FAQ or some geomtry book).
Let's call L1 the first axis and L2 the second axis, both 3d lines
in 3d space. Let's call A and B points belonging to L1 and L2
respectively such that distance(A,B)=distance(L1,L2).
We know that the line AB is perpendicular to L1 and to L2.
Let's call R1 the radius of the cylinder based on L1 and R2 the
radius based on L2. if d<=R1+R2 there is an intersection.
The problem gets a little more complicate if the two cylinders are
of finite size but I let you figure out this one.