UNPKG

1.52 kBJavaScriptView Raw
1import { __extends } from "tslib";
2import Path from '../Path.js';
3var sin = Math.sin;
4var cos = Math.cos;
5var radian = Math.PI / 180;
6var RoseShape = (function () {
7 function RoseShape() {
8 this.cx = 0;
9 this.cy = 0;
10 this.r = [];
11 this.k = 0;
12 this.n = 1;
13 }
14 return RoseShape;
15}());
16export { RoseShape };
17var Rose = (function (_super) {
18 __extends(Rose, _super);
19 function Rose(opts) {
20 return _super.call(this, opts) || this;
21 }
22 Rose.prototype.getDefaultStyle = function () {
23 return {
24 stroke: '#000',
25 fill: null
26 };
27 };
28 Rose.prototype.getDefaultShape = function () {
29 return new RoseShape();
30 };
31 Rose.prototype.buildPath = function (ctx, shape) {
32 var R = shape.r;
33 var k = shape.k;
34 var n = shape.n;
35 var x0 = shape.cx;
36 var y0 = shape.cy;
37 var x;
38 var y;
39 var r;
40 ctx.moveTo(x0, y0);
41 for (var i = 0, len = R.length; i < len; i++) {
42 r = R[i];
43 for (var j = 0; j <= 360 * n; j++) {
44 x = r
45 * sin(k / n * j % 360 * radian)
46 * cos(j * radian)
47 + x0;
48 y = r
49 * sin(k / n * j % 360 * radian)
50 * sin(j * radian)
51 + y0;
52 ctx.lineTo(x, y);
53 }
54 }
55 };
56 return Rose;
57}(Path));
58Rose.prototype.type = 'rose';
59export default Rose;