public static Point SplitByNextIntersection(Point startPoint, QuadraticBezierSegment segment, out SegmentBase segment1, out SegmentBase segment2) { return SplitByNextIntersection(startPoint, segment, out segment1, out segment2, new QuadraticBezierEquation(startPoint, segment), (t, p) => new QuadraticBezierSegment(Mid(startPoint, segment.ControlPoint, t), p), t => new QuadraticBezierSegment(Mid(segment.ControlPoint, segment.EndPoint, t), segment.EndPoint)); }
public static List<Point> Approximate(Point startPoint, QuadraticBezierSegment segment) { return Approximate(new QuadraticBezierEquation(startPoint, segment).GetPoint, startPoint, segment.EndPoint); }
public QuadraticBezierEquation(Point startPoint, QuadraticBezierSegment segment) { _startPoint = startPoint; _controlPoint = segment.ControlPoint; _endPoint = segment.EndPoint; }