Quadratic Bezier curve-curve intersection
curve 1: x=a2*t^2+a1*t+a0, y=b2*t^2+b1*t+b0
implicitization:
p(x, t) = a2*t^2+a1*t+(a0-x)
q(y, t) = b2*t^2+b1*t+(b0-y)
f(x, y)
= |a2*b1-a1*b2 a2*(b0-y)-(a0-x)*b2|
|a2*(b0-y)-(a0-x)*b2 a1*(b0-y)-(a0-x)*b1|
= (a2*b1-a1*b2)*(a1*(b0-y)-(a0-x)*b1)-(a2*(b0-y)-(a0-x)*b2)^2
= (a2*b1-a1*b2)*(b1*x+a1*y+a1*b0-a0*b1)-(b2*x-a2*y+a2*b0-a0*b2)^2
= -b2^2*x^2+2*a2*b2*x*y-a2^2*y^2
+(b1*(a2*b1-a1*b2)-2*b2*(a2*b0-a0*b2))*x
+(a1*(a2*b1-a1*b2)+2*a2*(a2*b0-a0*b2))*y
+(a2*b1-a1*b2)*(a1*b0-a0*b1)-(a2*b0-a0*b2)^2
= A*x^2+B*x*y+C*y^2+D*x+E*y+F
curve 2: x=c2*u^2+c1*u+c0, y=d2*u^2+d1*u+d0
f(x(u), y(u))
= A*(c2*u^2+c1*u+c0)^2+B*(c2*u^2+c1*u+c0)*(d2*u^2+d1*u+d0)
+C*(d2*u^2+d1*u+d0)^2+D*(c2*u^2+c1*u+c0)+E*(d2*u^2+d1*u+d0)+F
= A*(c2^2*u^4+2*c1*c2*u^3+(2*c0*c2+c1^2)*u^2+2*c0*c1*u+c0^2)
+B*(c2*d2*u^4+(c2*d1+c1*d2)*u^3+(c2*d0+c0*d2+c1*d1)*u^2+(c1*d0+c0*d1)*u+c0*d0)
+C*(d2^2*u^4+2*d1*d2*u^3+(2*d0*d2+d1^2)*u^2+2*d0*d1*u+d0^2)
+D*(c2*u^2+c1*u+c0)+E*(d2*u^2+d1*u+d0)+F
= (A*c2^2+B*c2*d2+C*d2^2)*u^4
+(2*A*c1*c2+B*(c2*d1+c1*d2)+2*C*d1*d2)*u^3
+(A*(2*c0*c2+c1^2)+B*(c2*d0+c0*d2+c1*d1)+C*(2*d0*d2+d1^2)+D*c2+E*d2)*u^2
+(2*A*c0*c1+B*(c1*d0+c0*d1)+2*C*d0*d1+D*c1+E*d1)*u
+(A*c0^2+B*c0*d0+C*d0^2+D*c0+E*d0+F)