public void Bezier(CubicBezier bezier) { var start = pixelAlign(bezier.Start); var span1 = pixelAlign(bezier.Span1); var span2 = pixelAlign(bezier.Span2); var end = pixelAlign(bezier.End); _target.Bezier(start, span1, span2, end); }
public void Bezier(CubicBezier bezier) { endOpenFigure(); _sink.BeginFigure(Import.Point(bezier.Start), FigureBegin.Hollow); _sink.AddBezier(new BezierSegment { Point1 = Import.Point(bezier.Span1), Point2 = Import.Point(bezier.Span2), Point3 = Import.Point(bezier.End) }); _sink.EndFigure(FigureEnd.Open); }
public static double? tryIntersectWithBezier(CubicBezier bezier, BezierEnd end, Func<Point, bool> isPointInside) { double start = end == BezierEnd.Start ? 0.0 : 1.0; double fin = end == BezierEnd.Start ? 1 : 0; // bisect always returns a valid value. return linearBisect(start, fin, DefaultIntersectionIterations, (a, b) => { var p1 = bezier.AtT(a); var p2 = bezier.AtT(b); return (p2 - p1).Length() > DefaultIntersectionTolerance; }, (h) => { var p = bezier.AtT(h); return isPointInside(p); } ) ; }
public void Bezier(CubicBezier bezier) { if (Stroking) { drawOpenPath(Import.Point(bezier.Start), sink => { var bezierSegment = new BezierSegment() { Point1 = Import.Point(bezier.Span1), Point2 = Import.Point(bezier.Span2), Point3 = Import.Point(bezier.End) }; sink.AddBezier(bezierSegment); }); } }
public void Bezier(CubicBezier bezier) { _figures.Bezier(bezier); }
public void Bezier(CubicBezier bezier) { _tracker.trackPoints(bezier.Start, bezier.Span1, bezier.Span2, bezier.End); }
public void Bezier(CubicBezier bezier) { record(t => t.Bezier(bezier)); }
/* Intersect a geometry with a bezier. Assumes that the given bezier end is inside the geometry. */ public static double? TryIntersectWithBezier(this IGeometry geometry, CubicBezier bezier, BezierEnd insideEnd) { return tryIntersectWithBezier(bezier, insideEnd, v => geometry.Contains(v.X, v.Y)); }