static d.PointF AddToPath(this PolyQuadraticBezierSegment segment, d.PointF startPoint, d2.GraphicsPath path) { var points = new d.PointF[3 * segment.Points.Count / 2 + 1]; var j = 0; points[j++] = startPoint; for(var i = 0; i < segment.Points.Count; i += 2) { QuadraticToCubic(points[j - 1], segment.Points[i].ToGdiPlus(), segment.Points[i + 1].ToGdiPlus(), points, j); j += 3; } path.AddBeziers(points); return points[points.Length - 1]; }
static d.PointF AddToPath(this PolyBezierSegment segment, d.PointF startPoint, d2.GraphicsPath path) { var points = new d.PointF[segment.Points.Count + 1]; var i = 0; points[i++] = startPoint; foreach(var p in segment.Points) points[i++] = p.ToGdiPlus(); path.AddBeziers(points); return points[points.Length - 1]; }