For a personal project, I\'d need to find out if two cubic Bézier curves intersect. I don\'t need to know where: I just need to know if they do. However, I\'d need to do it
I don't know how fast it will be, but if you have two curves C1(t) and C2(k) they intersect if C1(t) == C2(k). So you have two equations (per x and per y) for two variables (t, k). You can solve the system using numerical methods with enough for you accuracy. When you've found t,k parameters you should check if there is a parameter on [0, 1]. If it is they intersects on [0, 1].
Intersection of Bezier curves is done by the (very cool) Asymptote vector graphics language: look for intersect()
here.
Although they don't explain the algorithm they actually use there, except to say that it's from p. 137 of "The Metafont Book", it appears that the key to it is two important properties of Bezier curves (which are explained elsewhere on that site though I can't find the page right now):
With these two properties and an algorithm for intersecting polygons, you can recurse to arbitrary precision:
This will be fast if the curves don't intersect -- is that the usual case?
[EDIT] It looks like the algorithm for splitting a Bezier curve in two is called de Casteljau's algorithm.