You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.5 KiB
JavaScript
60 lines
2.5 KiB
JavaScript
4 months ago
|
"use strict";
|
||
|
|
||
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.drawPolylinePath = drawPolylinePath;
|
||
|
exports.drawBezierCurvePath = drawBezierCurvePath;
|
||
|
exports["default"] = void 0;
|
||
|
|
||
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
||
|
|
||
|
/**
|
||
|
* @description Draw a polyline path
|
||
|
* @param {Object} ctx Canvas 2d context
|
||
|
* @param {Array} points The points that makes up a polyline
|
||
|
* @param {Boolean} beginPath Whether to execute beginPath
|
||
|
* @param {Boolean} closePath Whether to execute closePath
|
||
|
* @return {Undefined} Void
|
||
|
*/
|
||
|
function drawPolylinePath(ctx, points) {
|
||
|
var beginPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
||
|
var closePath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
||
|
if (!ctx || points.length < 2) return false;
|
||
|
if (beginPath) ctx.beginPath();
|
||
|
points.forEach(function (point, i) {
|
||
|
return point && (i === 0 ? ctx.moveTo.apply(ctx, (0, _toConsumableArray2["default"])(point)) : ctx.lineTo.apply(ctx, (0, _toConsumableArray2["default"])(point)));
|
||
|
});
|
||
|
if (closePath) ctx.closePath();
|
||
|
}
|
||
|
/**
|
||
|
* @description Draw a bezier curve path
|
||
|
* @param {Object} ctx Canvas 2d context
|
||
|
* @param {Array} points The points that makes up a bezier curve
|
||
|
* @param {Array} moveTo The point need to excute moveTo
|
||
|
* @param {Boolean} beginPath Whether to execute beginPath
|
||
|
* @param {Boolean} closePath Whether to execute closePath
|
||
|
* @return {Undefined} Void
|
||
|
*/
|
||
|
|
||
|
|
||
|
function drawBezierCurvePath(ctx, points) {
|
||
|
var moveTo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
||
|
var beginPath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
||
|
var closePath = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
|
||
|
if (!ctx || !points) return false;
|
||
|
if (beginPath) ctx.beginPath();
|
||
|
if (moveTo) ctx.moveTo.apply(ctx, (0, _toConsumableArray2["default"])(moveTo));
|
||
|
points.forEach(function (item) {
|
||
|
return item && ctx.bezierCurveTo.apply(ctx, (0, _toConsumableArray2["default"])(item[0]).concat((0, _toConsumableArray2["default"])(item[1]), (0, _toConsumableArray2["default"])(item[2])));
|
||
|
});
|
||
|
if (closePath) ctx.closePath();
|
||
|
}
|
||
|
|
||
|
var _default = {
|
||
|
drawPolylinePath: drawPolylinePath,
|
||
|
drawBezierCurvePath: drawBezierCurvePath
|
||
|
};
|
||
|
exports["default"] = _default;
|