X-Git-Url: https://git.ucc.asn.au/?p=ipdf%2Fcode.git;a=blobdiff_plain;f=src%2Fbezier.cpp;h=da6533656847bf97eca50bba9212898a24754762;hp=a30a20a2afe72eade9b4642f99a1be3978132b69;hb=e35bf651e7ebfe4932e877780bb00397c41a7ec2;hpb=53579b1a949fa3e4e193f8dfba2064edbb123f57 diff --git a/src/bezier.cpp b/src/bezier.cpp index a30a20a..da65336 100644 --- a/src/bezier.cpp +++ b/src/bezier.cpp @@ -59,8 +59,8 @@ static pair BezierTurningPoints(const Real & p0, const Real & p1, co { return pair(0, 1); } - Real a = (p1- p0 - 2*(p2-p1) + p3-p2); - Real b = (p1-p0 - (p2-p1))*(p1-p0); + Real a = (3*(p1-p2) + p3 - p0); + Real b = 2*(p2 - 2*p1 + p0); Real c = (p1-p0); if (a == 0) { @@ -74,6 +74,7 @@ static pair BezierTurningPoints(const Real & p0, const Real & p1, co Debug("a, b, c are %f, %f, %f", Float(a), Float(b), Float(c)); if (b*b - 4*a*c < 0) { + Debug("No real roots"); return pair(0,1); } pair tsols = SolveQuadratic(a, b, c);