import smoothBezier from './smoothBezier.js'; export function buildPath(ctx, shape, closePath) { var smooth = shape.smooth; var points = shape.points; if (points && points.length >= 2) { if (smooth) { var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint); ctx.moveTo(points[0][0], points[0][1]); var len = points.length; for (var i = 0; i < (closePath ? len : len - 1); i++) { var cp1 = controlPoints[i * 2]; var cp2 = controlPoints[i * 2 + 1]; var p = points[(i + 1) % len]; ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); } } else { ctx.moveTo(points[0][0], points[0][1]); for (var i = 1, l = points.length; i < l; i++) { ctx.lineTo(points[i][0], points[i][1]); } } closePath && ctx.closePath(); } }