import { __extends } from "tslib"; import Path from '../Path.js'; var sin = Math.sin; var cos = Math.cos; var radian = Math.PI / 180; var RoseShape = (function () { function RoseShape() { this.cx = 0; this.cy = 0; this.r = []; this.k = 0; this.n = 1; } return RoseShape; }()); export { RoseShape }; var Rose = (function (_super) { __extends(Rose, _super); function Rose(opts) { return _super.call(this, opts) || this; } Rose.prototype.getDefaultStyle = function () { return { stroke: '#000', fill: null }; }; Rose.prototype.getDefaultShape = function () { return new RoseShape(); }; Rose.prototype.buildPath = function (ctx, shape) { var R = shape.r; var k = shape.k; var n = shape.n; var x0 = shape.cx; var y0 = shape.cy; var x; var y; var r; ctx.moveTo(x0, y0); for (var i = 0, len = R.length; i < len; i++) { r = R[i]; for (var j = 0; j <= 360 * n; j++) { x = r * sin(k / n * j % 360 * radian) * cos(j * radian) + x0; y = r * sin(k / n * j % 360 * radian) * sin(j * radian) + y0; ctx.lineTo(x, y); } } }; return Rose; }(Path)); Rose.prototype.type = 'rose'; export default Rose;