hunt_chang

A fast and precise INTERSECTION solution of cubic BEZIER curves

Discussion created by hunt_chang on Jun 21, 2012
Latest reply on Jul 6, 2012 by hunt_chang

Cubic Bezier curve has been invented over fifty years, but its usage was serious limited as there is no effective way to solve its intersection points problem either in between curve-to-curve or within a curve itself.

 

I have worked out a fast, precise and by theory solution to find out all of the INTERSECTION points. I wonder if AMD is interested to license this solution to enlarge her code library.

 

Enclosed are a picture of cubic Bezier curves’ intersection points and certain data related with the two curves for any person who feels interested to verify their corectness.

 

Hunt Chang

Ps. my solution is direct and by theory, not an approach of approximation like bisection or bez-clipping or others.

9X-1.png

 

Blue Curve control points: P0 (504.000000, 360.000000), P1 (111.000000, 282.000000), P2 (753.000000, 368.000000), P3 (414.000000, 288.000000);
Inflection point(s) at (436.247939291, 324.686418634);  t[0] = 0.493948130;

 

Red Curve control points: P0 (434.000000, 410.000000), P1 (662.000000, 60.000000), P2 (175.000000, 558.000000), P3 (523.000000, 263.000000);
Self Intersection point at (497.178713708, 284.716993708);  t[1] = 0.219641391, t[2] = 0.973625079;

 

The Intersection point(s) of those two curves:
  (469.284632332, 352.984190733), (484.205333013, 325.417398792), (491.920199738, 308.486201692), (455.137674488, 298.118444831);
  (424.123514673, 324.385358688), (408.647917012, 339.640827151), (447.698139089, 324.971794242), (423.836163179, 343.202129023);
  (474.615957980, 303.350537381);
Blue Curve's t value(s):
  t[0] = 0.032102241, t[1] = 0.614547187, t[2] = 0.892283373, t[3] = 0.953489452;
  t[4] = 0.464196010, t[5] = 0.110969242, t[6] = 0.521571699, t[7] = 0.086657188;
  t[8] = 0.924926429;
Red Curve's t value(s):
  t[0] = 0.063739442, t[1] = 0.105845537, t[2] = 0.139708529, t[3] = 0.428695394;
  t[4] = 0.532211221, t[5] = 0.592534208, t[6] = 0.909201381, t[7] = 0.864858712;
  t[8] = 0.947179525;

Outcomes