Merge remote-tracking branch 'upstream/main'

This commit is contained in:
2026-08-26 09:31:34 +08:00
parent 9b8c4bfab6
commit 394eb0285d
34137 changed files with 3589424 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
import Path, { PathProps } from '../Path';
export declare class ArcShape {
cx: number;
cy: number;
r: number;
startAngle: number;
endAngle: number;
clockwise?: boolean;
}
export interface ArcProps extends PathProps {
shape?: Partial<ArcShape>;
}
declare class Arc extends Path<ArcProps> {
shape: ArcShape;
constructor(opts?: ArcProps);
getDefaultStyle(): {
stroke: string;
fill: string;
};
getDefaultShape(): ArcShape;
buildPath(ctx: CanvasRenderingContext2D, shape: ArcShape): void;
}
export default Arc;
+44
View File
@@ -0,0 +1,44 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var ArcShape = (function () {
function ArcShape() {
this.cx = 0;
this.cy = 0;
this.r = 0;
this.startAngle = 0;
this.endAngle = Math.PI * 2;
this.clockwise = true;
}
return ArcShape;
}());
export { ArcShape };
var Arc = (function (_super) {
__extends(Arc, _super);
function Arc(opts) {
return _super.call(this, opts) || this;
}
Arc.prototype.getDefaultStyle = function () {
return {
stroke: '#000',
fill: null
};
};
Arc.prototype.getDefaultShape = function () {
return new ArcShape();
};
Arc.prototype.buildPath = function (ctx, shape) {
var x = shape.cx;
var y = shape.cy;
var r = Math.max(shape.r, 0);
var startAngle = shape.startAngle;
var endAngle = shape.endAngle;
var clockwise = shape.clockwise;
var unitX = Math.cos(startAngle);
var unitY = Math.sin(startAngle);
ctx.moveTo(unitX * r + x, unitY * r + y);
ctx.arc(x, y, r, startAngle, endAngle, !clockwise);
};
return Arc;
}(Path));
Arc.prototype.type = 'arc';
export default Arc;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Arc.js","sourceRoot":"","sources":["../../../src/graphic/shape/Arc.ts"],"names":[],"mappings":";;;AAIA,gCAA0C;AAE1C;IAAA;QACI,OAAE,GAAG,CAAC,CAAC;QACP,OAAE,GAAG,CAAC,CAAC;QACP,MAAC,GAAG,CAAC,CAAC;QACN,eAAU,GAAG,CAAC,CAAC;QACf,aAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACtB,cAAS,GAAI,IAAI,CAAA;IACrB,CAAC;IAAD,eAAC;AAAD,CAAC,AAPD,IAOC;AAMD;IAAkB,+BAAc;IAI5B,aAAY,IAAe;eACvB,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,6BAAe,GAAf;QACI,OAAO;YACH,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAc;SACvB,CAAC;IACN,CAAC;IAED,6BAAe,GAAf;QACI,OAAO,IAAI,QAAQ,EAAE,CAAC;IAC1B,CAAC;IAED,uBAAS,GAAT,UAAU,GAA6B,EAAE,KAAe;QAEpD,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACzC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IACL,UAAC;AAAD,CAAC,AAlCD,CAAkB,iBAAI,GAkCrB;AAED,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC;AAE3B,qBAAe,GAAG,CAAC"}
+28
View File
@@ -0,0 +1,28 @@
import Path, { PathProps } from '../Path';
export declare class BezierCurveShape {
x1: number;
y1: number;
x2: number;
y2: number;
cpx1: number;
cpy1: number;
cpx2?: number;
cpy2?: number;
percent: number;
}
export interface BezierCurveProps extends PathProps {
shape?: Partial<BezierCurveShape>;
}
declare class BezierCurve extends Path<BezierCurveProps> {
shape: BezierCurveShape;
constructor(opts?: BezierCurveProps);
getDefaultStyle(): {
stroke: string;
fill: string;
};
getDefaultShape(): BezierCurveShape;
buildPath(ctx: CanvasRenderingContext2D, shape: BezierCurveShape): void;
pointAt(t: number): number[];
tangentAt(t: number): number[];
}
export default BezierCurve;
+99
View File
@@ -0,0 +1,99 @@
import { __extends } from "tslib";
import Path from '../Path.js';
import * as vec2 from '../../core/vector.js';
import { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve.js';
var out = [];
var BezierCurveShape = (function () {
function BezierCurveShape() {
this.x1 = 0;
this.y1 = 0;
this.x2 = 0;
this.y2 = 0;
this.cpx1 = 0;
this.cpy1 = 0;
this.percent = 1;
}
return BezierCurveShape;
}());
export { BezierCurveShape };
function someVectorAt(shape, t, isTangent) {
var cpx2 = shape.cpx2;
var cpy2 = shape.cpy2;
if (cpx2 != null || cpy2 != null) {
return [
(isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),
(isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)
];
}
else {
return [
(isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),
(isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)
];
}
}
var BezierCurve = (function (_super) {
__extends(BezierCurve, _super);
function BezierCurve(opts) {
return _super.call(this, opts) || this;
}
BezierCurve.prototype.getDefaultStyle = function () {
return {
stroke: '#000',
fill: null
};
};
BezierCurve.prototype.getDefaultShape = function () {
return new BezierCurveShape();
};
BezierCurve.prototype.buildPath = function (ctx, shape) {
var x1 = shape.x1;
var y1 = shape.y1;
var x2 = shape.x2;
var y2 = shape.y2;
var cpx1 = shape.cpx1;
var cpy1 = shape.cpy1;
var cpx2 = shape.cpx2;
var cpy2 = shape.cpy2;
var percent = shape.percent;
if (percent === 0) {
return;
}
ctx.moveTo(x1, y1);
if (cpx2 == null || cpy2 == null) {
if (percent < 1) {
quadraticSubdivide(x1, cpx1, x2, percent, out);
cpx1 = out[1];
x2 = out[2];
quadraticSubdivide(y1, cpy1, y2, percent, out);
cpy1 = out[1];
y2 = out[2];
}
ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);
}
else {
if (percent < 1) {
cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);
cpx1 = out[1];
cpx2 = out[2];
x2 = out[3];
cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);
cpy1 = out[1];
cpy2 = out[2];
y2 = out[3];
}
ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);
}
};
BezierCurve.prototype.pointAt = function (t) {
return someVectorAt(this.shape, t, false);
};
BezierCurve.prototype.tangentAt = function (t) {
var p = someVectorAt(this.shape, t, true);
return vec2.normalize(p, p);
};
return BezierCurve;
}(Path));
;
BezierCurve.prototype.type = 'bezier-curve';
export default BezierCurve;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"BezierCurve.js","sourceRoot":"","sources":["../../../src/graphic/shape/BezierCurve.ts"],"names":[],"mappings":"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"}
+16
View File
@@ -0,0 +1,16 @@
import Path, { PathProps } from '../Path';
export declare class CircleShape {
cx: number;
cy: number;
r: number;
}
export interface CircleProps extends PathProps {
shape?: Partial<CircleShape>;
}
declare class Circle extends Path<CircleProps> {
shape: CircleShape;
constructor(opts?: CircleProps);
getDefaultShape(): CircleShape;
buildPath(ctx: CanvasRenderingContext2D, shape: CircleShape): void;
}
export default Circle;
+28
View File
@@ -0,0 +1,28 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var CircleShape = (function () {
function CircleShape() {
this.cx = 0;
this.cy = 0;
this.r = 0;
}
return CircleShape;
}());
export { CircleShape };
var Circle = (function (_super) {
__extends(Circle, _super);
function Circle(opts) {
return _super.call(this, opts) || this;
}
Circle.prototype.getDefaultShape = function () {
return new CircleShape();
};
Circle.prototype.buildPath = function (ctx, shape) {
ctx.moveTo(shape.cx + shape.r, shape.cy);
ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);
};
return Circle;
}(Path));
;
Circle.prototype.type = 'circle';
export default Circle;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../../../src/graphic/shape/Circle.ts"],"names":[],"mappings":";;;AAIA,gCAA0C;AAE1C;IAAA;QACI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,MAAC,GAAG,CAAC,CAAA;IACT,CAAC;IAAD,kBAAC;AAAD,CAAC,AAJD,IAIC;AAKD;IAAqB,kCAAiB;IAIlC,gBAAY,IAAkB;eAC1B,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,gCAAe,GAAf;QACI,OAAO,IAAI,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,0BAAS,GAAT,UAAU,GAA6B,EAAE,KAAkB,EAAE,QAAiB;QAG1E,IAAI,QAAQ,EAAE;YACV,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;SAC5C;QAQD,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IACL,aAAC;AAAD,CAAC,AA3BD,CAAqB,iBAAI,GA2BxB;AAAA,CAAC;AAEF,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;AAEjC,qBAAe,MAAM,CAAC"}
+17
View File
@@ -0,0 +1,17 @@
import Path, { PathProps } from '../Path';
export declare class DropletShape {
cx: number;
cy: number;
width: number;
height: number;
}
export interface DropletProps extends PathProps {
shape?: Partial<DropletShape>;
}
declare class Droplet extends Path<DropletProps> {
shape: DropletShape;
constructor(opts?: DropletProps);
getDefaultShape(): DropletShape;
buildPath(ctx: CanvasRenderingContext2D, shape: DropletShape): void;
}
export default Droplet;
+34
View File
@@ -0,0 +1,34 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var DropletShape = (function () {
function DropletShape() {
this.cx = 0;
this.cy = 0;
this.width = 0;
this.height = 0;
}
return DropletShape;
}());
export { DropletShape };
var Droplet = (function (_super) {
__extends(Droplet, _super);
function Droplet(opts) {
return _super.call(this, opts) || this;
}
Droplet.prototype.getDefaultShape = function () {
return new DropletShape();
};
Droplet.prototype.buildPath = function (ctx, shape) {
var x = shape.cx;
var y = shape.cy;
var a = shape.width;
var b = shape.height;
ctx.moveTo(x, y + a);
ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);
ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);
ctx.closePath();
};
return Droplet;
}(Path));
Droplet.prototype.type = 'droplet';
export default Droplet;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Droplet.js","sourceRoot":"","sources":["../../../src/graphic/shape/Droplet.ts"],"names":[],"mappings":";;;AAIA,gCAA0C;AAE1C;IAAA;QACI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,UAAK,GAAG,CAAC,CAAA;QACT,WAAM,GAAG,CAAC,CAAA;IACd,CAAC;IAAD,mBAAC;AAAD,CAAC,AALD,IAKC;AAKD;IAAsB,mCAAkB;IAIpC,iBAAY,IAAmB;eAC3B,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,iCAAe,GAAf;QACI,OAAO,IAAI,YAAY,EAAE,CAAC;IAC9B,CAAC;IAED,2BAAS,GAAT,UAAU,GAA6B,EAAE,KAAmB;QACxD,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,IAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QAEvB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACrB,GAAG,CAAC,aAAa,CACb,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACb,CAAC,GAAG,CAAC,GAAG,CAAC,EACT,CAAC,EACD,CAAC,GAAG,CAAC,CACR,CAAC;QACF,GAAG,CAAC,aAAa,CACb,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACb,CAAC,GAAG,CAAC,GAAG,CAAC,EACT,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,EACL,CAAC,EACD,CAAC,GAAG,CAAC,CACR,CAAC;QACF,GAAG,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IACL,cAAC;AAAD,CAAC,AArCD,CAAsB,iBAAI,GAqCzB;AAED,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;AAEnC,qBAAe,OAAO,CAAC"}
+17
View File
@@ -0,0 +1,17 @@
import Path, { PathProps } from '../Path';
export declare class EllipseShape {
cx: number;
cy: number;
rx: number;
ry: number;
}
export interface EllipseProps extends PathProps {
shape?: Partial<EllipseShape>;
}
declare class Ellipse extends Path<EllipseProps> {
shape: EllipseShape;
constructor(opts?: EllipseProps);
getDefaultShape(): EllipseShape;
buildPath(ctx: CanvasRenderingContext2D, shape: EllipseShape): void;
}
export default Ellipse;
+39
View File
@@ -0,0 +1,39 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var EllipseShape = (function () {
function EllipseShape() {
this.cx = 0;
this.cy = 0;
this.rx = 0;
this.ry = 0;
}
return EllipseShape;
}());
export { EllipseShape };
var Ellipse = (function (_super) {
__extends(Ellipse, _super);
function Ellipse(opts) {
return _super.call(this, opts) || this;
}
Ellipse.prototype.getDefaultShape = function () {
return new EllipseShape();
};
Ellipse.prototype.buildPath = function (ctx, shape) {
var k = 0.5522848;
var x = shape.cx;
var y = shape.cy;
var a = shape.rx;
var b = shape.ry;
var ox = a * k;
var oy = b * k;
ctx.moveTo(x - a, y);
ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);
ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);
ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);
ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);
ctx.closePath();
};
return Ellipse;
}(Path));
Ellipse.prototype.type = 'ellipse';
export default Ellipse;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Ellipse.js","sourceRoot":"","sources":["../../../src/graphic/shape/Ellipse.ts"],"names":[],"mappings":";;;AAIA,gCAA0C;AAE1C;IAAA;QACI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;IACV,CAAC;IAAD,mBAAC;AAAD,CAAC,AALD,IAKC;AAKD;IAAsB,mCAAkB;IAIpC,iBAAY,IAAmB;eAC3B,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,iCAAe,GAAf;QACI,OAAO,IAAI,YAAY,EAAE,CAAC;IAC9B,CAAC;IAED,2BAAS,GAAT,UAAU,GAA6B,EAAE,KAAmB;QACxD,IAAM,CAAC,GAAG,SAAS,CAAC;QACpB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QACjB,IAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjB,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrB,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,aAAa,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,GAAG,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IACL,cAAC;AAAD,CAAC,AA5BD,CAAsB,iBAAI,GA4BzB;AAED,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;AAEnC,qBAAe,OAAO,CAAC"}
+17
View File
@@ -0,0 +1,17 @@
import Path, { PathProps } from '../Path';
export declare class HeartShape {
cx: number;
cy: number;
width: number;
height: number;
}
export interface HeartProps extends PathProps {
shape?: Partial<HeartShape>;
}
declare class Heart extends Path<HeartProps> {
shape: HeartShape;
constructor(opts?: HeartProps);
getDefaultShape(): HeartShape;
buildPath(ctx: CanvasRenderingContext2D, shape: HeartShape): void;
}
export default Heart;
+33
View File
@@ -0,0 +1,33 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var HeartShape = (function () {
function HeartShape() {
this.cx = 0;
this.cy = 0;
this.width = 0;
this.height = 0;
}
return HeartShape;
}());
export { HeartShape };
var Heart = (function (_super) {
__extends(Heart, _super);
function Heart(opts) {
return _super.call(this, opts) || this;
}
Heart.prototype.getDefaultShape = function () {
return new HeartShape();
};
Heart.prototype.buildPath = function (ctx, shape) {
var x = shape.cx;
var y = shape.cy;
var a = shape.width;
var b = shape.height;
ctx.moveTo(x, y);
ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);
ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);
};
return Heart;
}(Path));
Heart.prototype.type = 'heart';
export default Heart;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Heart.js","sourceRoot":"","sources":["../../../src/graphic/shape/Heart.ts"],"names":[],"mappings":";;;AAIA,gCAA0C;AAE1C;IAAA;QACI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,UAAK,GAAG,CAAC,CAAA;QACT,WAAM,GAAG,CAAC,CAAA;IACd,CAAC;IAAD,iBAAC;AAAD,CAAC,AALD,IAKC;AAKD;IAAoB,iCAAgB;IAIhC,eAAY,IAAiB;eACzB,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,+BAAe,GAAf;QACI,OAAO,IAAI,UAAU,EAAE,CAAC;IAC5B,CAAC;IAED,yBAAS,GAAT,UAAU,GAA6B,EAAE,KAAiB;QACtD,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;QACtB,IAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;QACvB,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjB,GAAG,CAAC,aAAa,CACb,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACxB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EACpB,CAAC,EAAE,CAAC,GAAG,CAAC,CACX,CAAC;QACF,GAAG,CAAC,aAAa,CACb,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EACpB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EACxB,CAAC,EAAE,CAAC,CACP,CAAC;IACN,CAAC;IACL,YAAC;AAAD,CAAC,AA7BD,CAAoB,iBAAI,GA6BvB;AAGD,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,OAAO,CAAC;AAE/B,qBAAe,KAAK,CAAC"}
+17
View File
@@ -0,0 +1,17 @@
import Path, { PathProps } from '../Path';
export declare class IsogonShape {
x: number;
y: number;
r: number;
n: number;
}
export interface IsogonProps extends PathProps {
shape?: Partial<IsogonShape>;
}
declare class Isogon extends Path<IsogonProps> {
shape: IsogonShape;
constructor(opts?: IsogonProps);
getDefaultShape(): IsogonShape;
buildPath(ctx: CanvasRenderingContext2D, shape: IsogonShape): void;
}
export default Isogon;
+45
View File
@@ -0,0 +1,45 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var PI = Math.PI;
var sin = Math.sin;
var cos = Math.cos;
var IsogonShape = (function () {
function IsogonShape() {
this.x = 0;
this.y = 0;
this.r = 0;
this.n = 0;
}
return IsogonShape;
}());
export { IsogonShape };
var Isogon = (function (_super) {
__extends(Isogon, _super);
function Isogon(opts) {
return _super.call(this, opts) || this;
}
Isogon.prototype.getDefaultShape = function () {
return new IsogonShape();
};
Isogon.prototype.buildPath = function (ctx, shape) {
var n = shape.n;
if (!n || n < 2) {
return;
}
var x = shape.x;
var y = shape.y;
var r = shape.r;
var dStep = 2 * PI / n;
var deg = -PI / 2;
ctx.moveTo(x + r * cos(deg), y + r * sin(deg));
for (var i = 0, end = n - 1; i < end; i++) {
deg += dStep;
ctx.lineTo(x + r * cos(deg), y + r * sin(deg));
}
ctx.closePath();
return;
};
return Isogon;
}(Path));
Isogon.prototype.type = 'isogon';
export default Isogon;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Isogon.js","sourceRoot":"","sources":["../../../src/graphic/shape/Isogon.ts"],"names":[],"mappings":";;;AAIA,gCAA0C;AAE1C,IAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACrB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAErB;IAAA;QACI,MAAC,GAAG,CAAC,CAAA;QACL,MAAC,GAAG,CAAC,CAAA;QACL,MAAC,GAAG,CAAC,CAAA;QACL,MAAC,GAAG,CAAC,CAAA;IACT,CAAC;IAAD,kBAAC;AAAD,CAAC,AALD,IAKC;AAKD;IAAqB,kCAAiB;IAIlC,gBAAY,IAAkB;eAC1B,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,gCAAe,GAAf;QACI,OAAO,IAAI,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,0BAAS,GAAT,UAAU,GAA6B,EAAE,KAAkB;QACvD,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACb,OAAO;SACV;QAED,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClB,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClB,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAElB,IAAM,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzB,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAElB,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YACvC,GAAG,IAAI,KAAK,CAAC;YACb,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SAClD;QAED,GAAG,CAAC,SAAS,EAAE,CAAC;QAEhB,OAAO;IACX,CAAC;IACL,aAAC;AAAD,CAAC,AAnCD,CAAqB,iBAAI,GAmCxB;AAED,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;AAEjC,qBAAe,MAAM,CAAC"}
+24
View File
@@ -0,0 +1,24 @@
import Path, { PathProps } from '../Path';
import { VectorArray } from '../../core/vector';
export declare class LineShape {
x1: number;
y1: number;
x2: number;
y2: number;
percent: number;
}
export interface LineProps extends PathProps {
shape?: Partial<LineShape>;
}
declare class Line extends Path<LineProps> {
shape: LineShape;
constructor(opts?: LineProps);
getDefaultStyle(): {
stroke: string;
fill: string;
};
getDefaultShape(): LineShape;
buildPath(ctx: CanvasRenderingContext2D, shape: LineShape): void;
pointAt(p: number): VectorArray;
}
export default Line;
+69
View File
@@ -0,0 +1,69 @@
import { __extends } from "tslib";
import Path from '../Path.js';
import { subPixelOptimizeLine } from '../helper/subPixelOptimize.js';
var subPixelOptimizeOutputShape = {};
var LineShape = (function () {
function LineShape() {
this.x1 = 0;
this.y1 = 0;
this.x2 = 0;
this.y2 = 0;
this.percent = 1;
}
return LineShape;
}());
export { LineShape };
var Line = (function (_super) {
__extends(Line, _super);
function Line(opts) {
return _super.call(this, opts) || this;
}
Line.prototype.getDefaultStyle = function () {
return {
stroke: '#000',
fill: null
};
};
Line.prototype.getDefaultShape = function () {
return new LineShape();
};
Line.prototype.buildPath = function (ctx, shape) {
var x1;
var y1;
var x2;
var y2;
if (this.subPixelOptimize) {
var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);
x1 = optimizedShape.x1;
y1 = optimizedShape.y1;
x2 = optimizedShape.x2;
y2 = optimizedShape.y2;
}
else {
x1 = shape.x1;
y1 = shape.y1;
x2 = shape.x2;
y2 = shape.y2;
}
var percent = shape.percent;
if (percent === 0) {
return;
}
ctx.moveTo(x1, y1);
if (percent < 1) {
x2 = x1 * (1 - percent) + x2 * percent;
y2 = y1 * (1 - percent) + y2 * percent;
}
ctx.lineTo(x2, y2);
};
Line.prototype.pointAt = function (p) {
var shape = this.shape;
return [
shape.x1 * (1 - p) + shape.x2 * p,
shape.y1 * (1 - p) + shape.y2 * p
];
};
return Line;
}(Path));
Line.prototype.type = 'line';
export default Line;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Line.js","sourceRoot":"","sources":["../../../src/graphic/shape/Line.ts"],"names":[],"mappings":";;;AAKA,gCAA0C;AAC1C,+DAAgE;AAKhE,IAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;IAAA;QAEI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QAEN,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QAEN,YAAO,GAAG,CAAC,CAAA;IACf,CAAC;IAAD,gBAAC;AAAD,CAAC,AATD,IASC;AAKD;IAAmB,gCAAe;IAI9B,cAAY,IAAgB;eACxB,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,8BAAe,GAAf;QACI,OAAO;YACH,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAc;SACvB,CAAC;IACN,CAAC;IAED,8BAAe,GAAf;QACI,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,wBAAS,GAAT,UAAU,GAA6B,EAAE,KAAgB;QACrD,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QAEP,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAM,cAAc,GAAG,uCAAoB,CACvC,2BAA2B,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CACjD,CAAC;YACF,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YACvB,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YACvB,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;YACvB,EAAE,GAAG,cAAc,CAAC,EAAE,CAAC;SAC1B;aACI;YACD,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACd,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;SACjB;QAED,IAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAE9B,IAAI,OAAO,KAAK,CAAC,EAAE;YACf,OAAO;SACV;QAED,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnB,IAAI,OAAO,GAAG,CAAC,EAAE;YACb,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACvC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;SAC1C;QACD,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACvB,CAAC;IAKD,sBAAO,GAAP,UAAQ,CAAS;QACb,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO;YACH,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC;YACjC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,GAAG,CAAC;SACpC,CAAC;IACN,CAAC;IACL,WAAC;AAAD,CAAC,AAlED,CAAmB,iBAAI,GAkEtB;AAED,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;AAC7B,qBAAe,IAAI,CAAC"}
+17
View File
@@ -0,0 +1,17 @@
import Path, { PathProps } from '../Path';
import { VectorArray } from '../../core/vector';
export declare class PolygonShape {
points: VectorArray[];
smooth?: number;
smoothConstraint?: VectorArray[];
}
export interface PolygonProps extends PathProps {
shape?: Partial<PolygonShape>;
}
declare class Polygon extends Path<PolygonProps> {
shape: PolygonShape;
constructor(opts?: PolygonProps);
getDefaultShape(): PolygonShape;
buildPath(ctx: CanvasRenderingContext2D, shape: PolygonShape): void;
}
export default Polygon;
+28
View File
@@ -0,0 +1,28 @@
import { __extends } from "tslib";
import Path from '../Path.js';
import * as polyHelper from '../helper/poly.js';
var PolygonShape = (function () {
function PolygonShape() {
this.points = null;
this.smooth = 0;
this.smoothConstraint = null;
}
return PolygonShape;
}());
export { PolygonShape };
var Polygon = (function (_super) {
__extends(Polygon, _super);
function Polygon(opts) {
return _super.call(this, opts) || this;
}
Polygon.prototype.getDefaultShape = function () {
return new PolygonShape();
};
Polygon.prototype.buildPath = function (ctx, shape) {
polyHelper.buildPath(ctx, shape, true);
};
return Polygon;
}(Path));
;
Polygon.prototype.type = 'polygon';
export default Polygon;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Polygon.js","sourceRoot":"","sources":["../../../src/graphic/shape/Polygon.ts"],"names":[],"mappings":";;;AAKA,gCAA0C;AAC1C,2CAA6C;AAG7C;IAAA;QACI,WAAM,GAAkB,IAAI,CAAA;QAC5B,WAAM,GAAuB,CAAC,CAAA;QAC9B,qBAAgB,GAAmB,IAAI,CAAA;IAC3C,CAAC;IAAD,mBAAC;AAAD,CAAC,AAJD,IAIC;AAKD;IAAsB,mCAAkB;IAIpC,iBAAY,IAAmB;eAC3B,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,iCAAe,GAAf;QACI,OAAO,IAAI,YAAY,EAAE,CAAC;IAC9B,CAAC;IAED,2BAAS,GAAT,UAAU,GAA6B,EAAE,KAAmB;QACxD,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IACL,cAAC;AAAD,CAAC,AAfD,CAAsB,iBAAI,GAezB;AAAA,CAAC;AAEF,OAAO,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC;AAEnC,qBAAe,OAAO,CAAC"}
+22
View File
@@ -0,0 +1,22 @@
import Path, { PathProps } from '../Path';
import { VectorArray } from '../../core/vector';
export declare class PolylineShape {
points: VectorArray[];
percent?: number;
smooth?: number;
smoothConstraint?: VectorArray[];
}
export interface PolylineProps extends PathProps {
shape?: Partial<PolylineShape>;
}
declare class Polyline extends Path<PolylineProps> {
shape: PolylineShape;
constructor(opts?: PolylineProps);
getDefaultStyle(): {
stroke: string;
fill: string;
};
getDefaultShape(): PolylineShape;
buildPath(ctx: CanvasRenderingContext2D, shape: PolylineShape): void;
}
export default Polyline;
+34
View File
@@ -0,0 +1,34 @@
import { __extends } from "tslib";
import Path from '../Path.js';
import * as polyHelper from '../helper/poly.js';
var PolylineShape = (function () {
function PolylineShape() {
this.points = null;
this.percent = 1;
this.smooth = 0;
this.smoothConstraint = null;
}
return PolylineShape;
}());
export { PolylineShape };
var Polyline = (function (_super) {
__extends(Polyline, _super);
function Polyline(opts) {
return _super.call(this, opts) || this;
}
Polyline.prototype.getDefaultStyle = function () {
return {
stroke: '#000',
fill: null
};
};
Polyline.prototype.getDefaultShape = function () {
return new PolylineShape();
};
Polyline.prototype.buildPath = function (ctx, shape) {
polyHelper.buildPath(ctx, shape, false);
};
return Polyline;
}(Path));
Polyline.prototype.type = 'polyline';
export default Polyline;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Polyline.js","sourceRoot":"","sources":["../../../src/graphic/shape/Polyline.ts"],"names":[],"mappings":";;;AAIA,gCAA0C;AAC1C,2CAA6C;AAG7C;IAAA;QACI,WAAM,GAAkB,IAAI,CAAA;QAE5B,YAAO,GAAY,CAAC,CAAA;QACpB,WAAM,GAAuB,CAAC,CAAA;QAC9B,qBAAgB,GAAmB,IAAI,CAAA;IAC3C,CAAC;IAAD,oBAAC;AAAD,CAAC,AAND,IAMC;AAKD;IAAuB,oCAAmB;IAItC,kBAAY,IAAoB;eAC5B,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,kCAAe,GAAf;QACI,OAAO;YACH,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAc;SACvB,CAAC;IACN,CAAC;IAED,kCAAe,GAAf;QACI,OAAO,IAAI,aAAa,EAAE,CAAC;IAC/B,CAAC;IAED,4BAAS,GAAT,UAAU,GAA6B,EAAE,KAAoB;QACzD,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IACL,eAAC;AAAD,CAAC,AAtBD,CAAuB,iBAAI,GAsB1B;AAED,QAAQ,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,CAAC;AACrC,qBAAe,QAAQ,CAAC"}
+19
View File
@@ -0,0 +1,19 @@
import Path, { PathProps } from '../Path';
export declare class RectShape {
r?: number | number[];
x: number;
y: number;
width: number;
height: number;
}
export interface RectProps extends PathProps {
shape?: Partial<RectShape>;
}
declare class Rect extends Path<RectProps> {
shape: RectShape;
constructor(opts?: RectProps);
getDefaultShape(): RectShape;
buildPath(ctx: CanvasRenderingContext2D, shape: RectShape): void;
isZeroArea(): boolean;
}
export default Rect;
+57
View File
@@ -0,0 +1,57 @@
import { __extends } from "tslib";
import Path from '../Path.js';
import * as roundRectHelper from '../helper/roundRect.js';
import { subPixelOptimizeRect } from '../helper/subPixelOptimize.js';
var RectShape = (function () {
function RectShape() {
this.x = 0;
this.y = 0;
this.width = 0;
this.height = 0;
}
return RectShape;
}());
export { RectShape };
var subPixelOptimizeOutputShape = {};
var Rect = (function (_super) {
__extends(Rect, _super);
function Rect(opts) {
return _super.call(this, opts) || this;
}
Rect.prototype.getDefaultShape = function () {
return new RectShape();
};
Rect.prototype.buildPath = function (ctx, shape) {
var x;
var y;
var width;
var height;
if (this.subPixelOptimize) {
var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);
x = optimizedShape.x;
y = optimizedShape.y;
width = optimizedShape.width;
height = optimizedShape.height;
optimizedShape.r = shape.r;
shape = optimizedShape;
}
else {
x = shape.x;
y = shape.y;
width = shape.width;
height = shape.height;
}
if (!shape.r) {
ctx.rect(x, y, width, height);
}
else {
roundRectHelper.buildPath(ctx, shape);
}
};
Rect.prototype.isZeroArea = function () {
return !this.shape.width || !this.shape.height;
};
return Rect;
}(Path));
Rect.prototype.type = 'rect';
export default Rect;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Rect.js","sourceRoot":"","sources":["../../../src/graphic/shape/Rect.ts"],"names":[],"mappings":";;;AAKA,gCAA0C;AAC1C,qDAAuD;AACvD,+DAAgE;AAEhE;IAAA;QAQI,MAAC,GAAG,CAAC,CAAA;QACL,MAAC,GAAG,CAAC,CAAA;QACL,UAAK,GAAG,CAAC,CAAA;QACT,WAAM,GAAG,CAAC,CAAA;IACd,CAAC;IAAD,gBAAC;AAAD,CAAC,AAZD,IAYC;AAMD,IAAM,2BAA2B,GAAG,EAAE,CAAC;AAEvC;IAAmB,gCAAe;IAI9B,cAAY,IAAgB;eACxB,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,8BAAe,GAAf;QACI,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,wBAAS,GAAT,UAAU,GAA6B,EAAE,KAAgB;QACrD,IAAI,CAAS,CAAC;QACd,IAAI,CAAS,CAAC;QACd,IAAI,KAAa,CAAC;QAClB,IAAI,MAAc,CAAC;QAEnB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACvB,IAAM,cAAc,GAAG,uCAAoB,CAAC,2BAA2B,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5F,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;YACrB,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;YACrB,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;YAC7B,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;YAC/B,cAAc,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YAC3B,KAAK,GAAG,cAAc,CAAC;SAC1B;aACI;YACD,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACZ,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;YACZ,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YACpB,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;SACzB;QAED,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;YACV,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACjC;aACI;YACD,eAAe,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACzC;IACL,CAAC;IAED,yBAAU,GAAV;QACI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IACnD,CAAC;IACL,WAAC;AAAD,CAAC,AA7CD,CAAmB,iBAAI,GA6CtB;AAED,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;AAE7B,qBAAe,IAAI,CAAC"}
+17
View File
@@ -0,0 +1,17 @@
import Path, { PathProps } from '../Path';
export declare class RingShape {
cx: number;
cy: number;
r: number;
r0: number;
}
export interface RingProps extends PathProps {
shape?: Partial<RingShape>;
}
declare class Ring extends Path<RingProps> {
shape: RingShape;
constructor(opts?: RingProps);
getDefaultShape(): RingShape;
buildPath(ctx: CanvasRenderingContext2D, shape: RingShape): void;
}
export default Ring;
+33
View File
@@ -0,0 +1,33 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var RingShape = (function () {
function RingShape() {
this.cx = 0;
this.cy = 0;
this.r = 0;
this.r0 = 0;
}
return RingShape;
}());
export { RingShape };
var Ring = (function (_super) {
__extends(Ring, _super);
function Ring(opts) {
return _super.call(this, opts) || this;
}
Ring.prototype.getDefaultShape = function () {
return new RingShape();
};
Ring.prototype.buildPath = function (ctx, shape) {
var x = shape.cx;
var y = shape.cy;
var PI2 = Math.PI * 2;
ctx.moveTo(x + shape.r, y);
ctx.arc(x, y, shape.r, 0, PI2, false);
ctx.moveTo(x + shape.r0, y);
ctx.arc(x, y, shape.r0, 0, PI2, true);
};
return Ring;
}(Path));
Ring.prototype.type = 'ring';
export default Ring;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Ring.js","sourceRoot":"","sources":["../../../src/graphic/shape/Ring.ts"],"names":[],"mappings":";;;AAIA,gCAA0C;AAE1C;IAAA;QACI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,MAAC,GAAG,CAAC,CAAA;QACL,OAAE,GAAG,CAAC,CAAA;IACV,CAAC;IAAD,gBAAC;AAAD,CAAC,AALD,IAKC;AAKD;IAAmB,gCAAe;IAI9B,cAAY,IAAgB;eACxB,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,8BAAe,GAAf;QACI,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,wBAAS,GAAT,UAAU,GAA6B,EAAE,KAAgB;QACrD,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACxB,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3B,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtC,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5B,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;IACL,WAAC;AAAD,CAAC,AArBD,CAAmB,iBAAI,GAqBtB;AAED,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;AAC7B,qBAAe,IAAI,CAAC"}
+22
View File
@@ -0,0 +1,22 @@
import Path, { PathProps } from '../Path';
export declare class RoseShape {
cx: number;
cy: number;
r: number[];
k: number;
n: number;
}
export interface RoseProps extends PathProps {
shape?: Partial<RoseShape>;
}
declare class Rose extends Path<RoseProps> {
shape: RoseShape;
constructor(opts?: RoseProps);
getDefaultStyle(): {
stroke: string;
fill: string;
};
getDefaultShape(): RoseShape;
buildPath(ctx: CanvasRenderingContext2D, shape: RoseShape): void;
}
export default Rose;
+59
View File
@@ -0,0 +1,59 @@
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;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Rose.js","sourceRoot":"","sources":["../../../src/graphic/shape/Rose.ts"],"names":[],"mappings":";;;AAKA,gCAA0C;AAE1C,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACrB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACrB,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC;AAE7B;IAAA;QACI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,MAAC,GAAa,EAAE,CAAA;QAChB,MAAC,GAAG,CAAC,CAAA;QACL,MAAC,GAAG,CAAC,CAAA;IACT,CAAC;IAAD,gBAAC;AAAD,CAAC,AAND,IAMC;AAKD;IAAmB,gCAAe;IAI9B,cAAY,IAAgB;eACxB,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,8BAAe,GAAf;QACI,OAAO;YACH,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAc;SACvB,CAAC;IACN,CAAC;IAED,8BAAe,GAAf;QACI,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAGD,wBAAS,GAAT,UAAU,GAA6B,EAAE,KAAgB;QACrD,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClB,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClB,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClB,IAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,IAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACpB,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,CAAC;QACN,IAAI,CAAC,CAAC;QAGN,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1C,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAET,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,CAAC,GAAG,CAAC;sBACK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;sBAC7B,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;sBACf,EAAE,CAAC;gBACb,CAAC,GAAG,CAAC;sBACK,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC;sBAC7B,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC;sBACf,EAAE,CAAC;gBACb,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aACpB;SACJ;IACL,CAAC;IACL,WAAC;AAAD,CAAC,AAjDD,CAAmB,iBAAI,GAiDtB;AAED,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;AAE7B,qBAAe,IAAI,CAAC"}
+22
View File
@@ -0,0 +1,22 @@
import Path, { PathProps } from '../Path';
export declare class SectorShape {
cx: number;
cy: number;
r0: number;
r: number;
startAngle: number;
endAngle: number;
clockwise: boolean;
cornerRadius: number | number[];
}
export interface SectorProps extends PathProps {
shape?: Partial<SectorShape>;
}
declare class Sector extends Path<SectorProps> {
shape: SectorShape;
constructor(opts?: SectorProps);
getDefaultShape(): SectorShape;
buildPath(ctx: CanvasRenderingContext2D, shape: SectorShape): void;
isZeroArea(): boolean;
}
export default Sector;
+36
View File
@@ -0,0 +1,36 @@
import { __extends } from "tslib";
import Path from '../Path.js';
import * as roundSectorHelper from '../helper/roundSector.js';
var SectorShape = (function () {
function SectorShape() {
this.cx = 0;
this.cy = 0;
this.r0 = 0;
this.r = 0;
this.startAngle = 0;
this.endAngle = Math.PI * 2;
this.clockwise = true;
this.cornerRadius = 0;
}
return SectorShape;
}());
export { SectorShape };
var Sector = (function (_super) {
__extends(Sector, _super);
function Sector(opts) {
return _super.call(this, opts) || this;
}
Sector.prototype.getDefaultShape = function () {
return new SectorShape();
};
Sector.prototype.buildPath = function (ctx, shape) {
roundSectorHelper.buildPath(ctx, shape);
};
Sector.prototype.isZeroArea = function () {
return this.shape.startAngle === this.shape.endAngle
|| this.shape.r === this.shape.r0;
};
return Sector;
}(Path));
Sector.prototype.type = 'sector';
export default Sector;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Sector.js","sourceRoot":"","sources":["../../../src/graphic/shape/Sector.ts"],"names":[],"mappings":";;;AAAA,gCAA0C;AAE1C;IAAA;QACI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,MAAC,GAAG,CAAC,CAAA;QACL,eAAU,GAAG,CAAC,CAAA;QACd,aAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACtB,cAAS,GAAY,IAAI,CAAA;IAC7B,CAAC;IAAD,kBAAC;AAAD,CAAC,AARD,IAQC;AAKD;IAAqB,kCAAiB;IAIlC,gBAAY,IAAkB;eAC1B,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,gCAAe,GAAf;QACI,OAAO,IAAI,WAAW,EAAE,CAAC;IAC7B,CAAC;IAGD,0BAAS,GAAT,UAAU,GAA6B,EAAE,KAAkB;QAEvD,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,IAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,IAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAElC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnC,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAE3C,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC;QAEnD,GAAG,CAAC,MAAM,CACN,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAC3B,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAC9B,CAAC;QAEF,IAAI,EAAE,KAAK,CAAC,EAAE;YACV,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;SACtD;QAED,GAAG,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IAED,2BAAU,GAAV;QACI,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ;eAC7C,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1C,CAAC;IACL,aAAC;AAAD,CAAC,AAhDD,CAAqB,iBAAI,GAgDxB;AAED,MAAM,CAAC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;AAEjC,qBAAe,MAAM,CAAC"}
+18
View File
@@ -0,0 +1,18 @@
import Path, { PathProps } from '../Path';
export declare class StarShape {
cx: number;
cy: number;
n: number;
r0: number;
r: number;
}
export interface StarProps extends PathProps {
shape?: Partial<StarShape>;
}
declare class Star extends Path<StarProps> {
shape: StarShape;
constructor(opts?: StarProps);
getDefaultShape(): StarShape;
buildPath(ctx: CanvasRenderingContext2D, shape: StarShape): void;
}
export default Star;
+54
View File
@@ -0,0 +1,54 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var PI = Math.PI;
var cos = Math.cos;
var sin = Math.sin;
var StarShape = (function () {
function StarShape() {
this.cx = 0;
this.cy = 0;
this.n = 3;
this.r = 0;
}
return StarShape;
}());
export { StarShape };
var Star = (function (_super) {
__extends(Star, _super);
function Star(opts) {
return _super.call(this, opts) || this;
}
Star.prototype.getDefaultShape = function () {
return new StarShape();
};
Star.prototype.buildPath = function (ctx, shape) {
var n = shape.n;
if (!n || n < 2) {
return;
}
var x = shape.cx;
var y = shape.cy;
var r = shape.r;
var r0 = shape.r0;
if (r0 == null) {
r0 = n > 4
? r * cos(2 * PI / n) / cos(PI / n)
: r / 3;
}
var dStep = PI / n;
var deg = -PI / 2;
var xStart = x + r * cos(deg);
var yStart = y + r * sin(deg);
deg += dStep;
ctx.moveTo(xStart, yStart);
for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {
ri = i % 2 === 0 ? r0 : r;
ctx.lineTo(x + ri * cos(deg), y + ri * sin(deg));
deg += dStep;
}
ctx.closePath();
};
return Star;
}(Path));
Star.prototype.type = 'star';
export default Star;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Star.js","sourceRoot":"","sources":["../../../src/graphic/shape/Star.ts"],"names":[],"mappings":";;;AAKA,gCAA0C;AAE1C,IAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AACnB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACrB,IAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AAErB;IAAA;QACI,OAAE,GAAG,CAAC,CAAA;QACN,OAAE,GAAG,CAAC,CAAA;QACN,MAAC,GAAG,CAAC,CAAA;QAEL,MAAC,GAAG,CAAC,CAAA;IACT,CAAC;IAAD,gBAAC;AAAD,CAAC,AAND,IAMC;AAKD;IAAmB,gCAAe;IAI9B,cAAY,IAAgB;eACxB,kBAAM,IAAI,CAAC;IACf,CAAC;IAED,8BAAe,GAAf;QACI,OAAO,IAAI,SAAS,EAAE,CAAC;IAC3B,CAAC;IAED,wBAAS,GAAT,UAAU,GAA6B,EAAE,KAAgB;QAErD,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACb,OAAO;SACV;QAED,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;QAClB,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QAGlB,IAAI,EAAE,IAAI,IAAI,EAAE;YACZ,EAAE,GAAG,CAAC,GAAG,CAAC;gBAGN,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;gBAEnC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SACf;QAED,IAAM,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;QACrB,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;QAClB,IAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,IAAM,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAChC,GAAG,IAAI,KAAK,CAAC;QAGb,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,SAAA,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC/C,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjD,GAAG,IAAI,KAAK,CAAC;SAChB;QAED,GAAG,CAAC,SAAS,EAAE,CAAC;IACpB,CAAC;IACL,WAAC;AAAD,CAAC,AAlDD,CAAmB,iBAAI,GAkDtB;AAED,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC;AAC7B,qBAAe,IAAI,CAAC"}
+23
View File
@@ -0,0 +1,23 @@
import Path, { PathProps } from '../Path';
export declare class TrochoidShape {
cx: number;
cy: number;
r: number;
r0: number;
d: number;
location: string;
}
export interface TrochoidProps extends PathProps {
shape?: Partial<TrochoidShape>;
}
declare class Trochoid extends Path<TrochoidProps> {
shape: TrochoidShape;
constructor(opts?: TrochoidProps);
getDefaultStyle(): {
stroke: string;
fill: string;
};
getDefaultShape(): TrochoidShape;
buildPath(ctx: CanvasRenderingContext2D, shape: TrochoidShape): void;
}
export default Trochoid;
+71
View File
@@ -0,0 +1,71 @@
import { __extends } from "tslib";
import Path from '../Path.js';
var cos = Math.cos;
var sin = Math.sin;
var TrochoidShape = (function () {
function TrochoidShape() {
this.cx = 0;
this.cy = 0;
this.r = 0;
this.r0 = 0;
this.d = 0;
this.location = 'out';
}
return TrochoidShape;
}());
export { TrochoidShape };
var Trochoid = (function (_super) {
__extends(Trochoid, _super);
function Trochoid(opts) {
return _super.call(this, opts) || this;
}
Trochoid.prototype.getDefaultStyle = function () {
return {
stroke: '#000',
fill: null
};
};
Trochoid.prototype.getDefaultShape = function () {
return new TrochoidShape();
};
Trochoid.prototype.buildPath = function (ctx, shape) {
var R = shape.r;
var r = shape.r0;
var d = shape.d;
var offsetX = shape.cx;
var offsetY = shape.cy;
var delta = shape.location === 'out' ? 1 : -1;
var x1;
var y1;
var x2;
var y2;
if (shape.location && R <= r) {
return;
}
var num = 0;
var i = 1;
var theta;
x1 = (R + delta * r) * cos(0)
- delta * d * cos(0) + offsetX;
y1 = (R + delta * r) * sin(0)
- d * sin(0) + offsetY;
ctx.moveTo(x1, y1);
do {
num++;
} while ((r * num) % (R + delta * r) !== 0);
do {
theta = Math.PI / 180 * i;
x2 = (R + delta * r) * cos(theta)
- delta * d * cos((R / r + delta) * theta)
+ offsetX;
y2 = (R + delta * r) * sin(theta)
- d * sin((R / r + delta) * theta)
+ offsetY;
ctx.lineTo(x2, y2);
i++;
} while (i <= (r * num) / (R + delta * r) * 360);
};
return Trochoid;
}(Path));
Trochoid.prototype.type = 'trochoid';
export default Trochoid;
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"Trochoid.js","sourceRoot":"","sources":["../../../src/graphic/shape/Trochoid.ts"],"names":[],"mappings":"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"}