@fbltd/math 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/index.js +17 -0
- package/dist/bin/src/angle.js +80 -0
- package/dist/bin/src/colors/color.js +18 -0
- package/dist/bin/src/colors/conic.gradient.js +97 -0
- package/dist/bin/src/colors/index.js +18 -0
- package/dist/bin/src/figures/circle.js +15 -0
- package/dist/bin/src/figures/index.js +19 -0
- package/dist/bin/src/figures/point.js +21 -0
- package/dist/bin/src/figures/straight-line.js +19 -0
- package/dist/bin/src/index.js +22 -0
- package/dist/bin/src/matrix.js +34 -0
- package/dist/bin/src/operator.js +23 -0
- package/dist/bin/src/utils.js +22 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/src/angle.d.ts +14 -0
- package/dist/types/src/colors/color.d.ts +7 -0
- package/dist/types/src/colors/conic.gradient.d.ts +17 -0
- package/dist/types/src/colors/index.d.ts +2 -0
- package/dist/types/src/figures/circle.d.ts +8 -0
- package/dist/types/src/figures/index.d.ts +3 -0
- package/dist/types/src/figures/point.d.ts +5 -0
- package/dist/types/src/figures/straight-line.d.ts +8 -0
- package/dist/types/src/index.d.ts +6 -0
- package/dist/types/src/matrix.d.ts +14 -0
- package/dist/types/src/operator.d.ts +7 -0
- package/dist/types/src/utils.d.ts +3 -0
- package/package.json +3 -2
- package/dist/math.d.ts +0 -121
- package/dist/math.js +0 -385
- package/dist/math.js.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./src"), exports);
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Angle = exports.AngleUnits = void 0;
|
|
5
|
+
var utils_1 = require("./utils");
|
|
6
|
+
var AngleUnits;
|
|
7
|
+
(function (AngleUnits) {
|
|
8
|
+
AngleUnits[AngleUnits["Deg"] = 0] = "Deg";
|
|
9
|
+
AngleUnits[AngleUnits["Rad"] = 1] = "Rad";
|
|
10
|
+
AngleUnits[AngleUnits["Turn"] = 2] = "Turn";
|
|
11
|
+
})(AngleUnits || (exports.AngleUnits = AngleUnits = {}));
|
|
12
|
+
var Angle = (function () {
|
|
13
|
+
function Angle() {
|
|
14
|
+
}
|
|
15
|
+
Angle.toRad = function (angle, unit) {
|
|
16
|
+
if (unit === void 0) { unit = AngleUnits.Deg; }
|
|
17
|
+
switch (unit) {
|
|
18
|
+
case AngleUnits.Rad:
|
|
19
|
+
return angle;
|
|
20
|
+
case AngleUnits.Deg:
|
|
21
|
+
return angle * Math.PI / 180;
|
|
22
|
+
case AngleUnits.Turn:
|
|
23
|
+
return Math.PI * 2 * angle;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
Angle.toTurn = function (angle, unit) {
|
|
27
|
+
if (unit === void 0) { unit = AngleUnits.Deg; }
|
|
28
|
+
switch (unit) {
|
|
29
|
+
case AngleUnits.Turn:
|
|
30
|
+
return angle;
|
|
31
|
+
case AngleUnits.Deg:
|
|
32
|
+
return angle / 360;
|
|
33
|
+
case AngleUnits.Rad:
|
|
34
|
+
return angle / (Math.PI * 2);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
Angle.toDeg = function (angle, unit) {
|
|
38
|
+
if (unit === void 0) { unit = AngleUnits.Rad; }
|
|
39
|
+
switch (unit) {
|
|
40
|
+
case AngleUnits.Deg:
|
|
41
|
+
return angle;
|
|
42
|
+
case AngleUnits.Turn:
|
|
43
|
+
return angle * 360;
|
|
44
|
+
case AngleUnits.Rad:
|
|
45
|
+
return angle * 180 / Math.PI;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
Angle.toPositive = function (angle, unit) {
|
|
49
|
+
switch (unit) {
|
|
50
|
+
case AngleUnits.Deg:
|
|
51
|
+
return (0, utils_1.toPositive)(angle, 360);
|
|
52
|
+
case AngleUnits.Turn:
|
|
53
|
+
return (0, utils_1.toPositive)(angle, 1);
|
|
54
|
+
case AngleUnits.Rad:
|
|
55
|
+
return (0, utils_1.toPositive)(angle, Math.PI * 2);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
Angle.normalize = function (angle, unit) {
|
|
59
|
+
switch (unit) {
|
|
60
|
+
case AngleUnits.Deg:
|
|
61
|
+
return Angle.toPositive(angle, unit) % 360;
|
|
62
|
+
case AngleUnits.Rad:
|
|
63
|
+
return Angle.toPositive(angle, unit) % (Math.PI * 2);
|
|
64
|
+
case AngleUnits.Turn:
|
|
65
|
+
return Angle.toPositive(angle, unit) % 1;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
Angle.toCSS = function (angle, unit) {
|
|
69
|
+
if (!(0, utils_1.isCorrectNumber)(angle))
|
|
70
|
+
return '';
|
|
71
|
+
return "rotate(".concat(angle).concat(Angle.angleUnitCorrespondence[unit], ")");
|
|
72
|
+
};
|
|
73
|
+
Angle.angleUnitCorrespondence = (_a = {},
|
|
74
|
+
_a[AngleUnits.Rad] = 'rad',
|
|
75
|
+
_a[AngleUnits.Turn] = 'turn',
|
|
76
|
+
_a[AngleUnits.Deg] = 'deg',
|
|
77
|
+
_a);
|
|
78
|
+
return Angle;
|
|
79
|
+
}());
|
|
80
|
+
exports.Angle = Angle;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Color = void 0;
|
|
4
|
+
var Color = (function () {
|
|
5
|
+
function Color(red, green, blue) {
|
|
6
|
+
this.red = red;
|
|
7
|
+
this.green = green;
|
|
8
|
+
this.blue = blue;
|
|
9
|
+
this.red = Math.max(Math.min(red, 255), 0);
|
|
10
|
+
this.green = Math.max(Math.min(green, 255), 0);
|
|
11
|
+
this.blue = Math.max(Math.min(blue, 255), 0);
|
|
12
|
+
}
|
|
13
|
+
Color.prototype.toCSS = function () {
|
|
14
|
+
return "rgb(".concat(this.red, ", ").concat(this.green, ", ").concat(this.blue, ")");
|
|
15
|
+
};
|
|
16
|
+
return Color;
|
|
17
|
+
}());
|
|
18
|
+
exports.Color = Color;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConicGradient = void 0;
|
|
13
|
+
var color_1 = require("./color");
|
|
14
|
+
var ConicGradient = (function () {
|
|
15
|
+
function ConicGradient() {
|
|
16
|
+
var colors = [];
|
|
17
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
18
|
+
colors[_i] = arguments[_i];
|
|
19
|
+
}
|
|
20
|
+
this.colors = __spreadArray([], colors, true).sort(function (a, b) { return a.angle - b.angle; });
|
|
21
|
+
this.colors.push({
|
|
22
|
+
angle: 1,
|
|
23
|
+
color: this.colors[0].color
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
ConicGradient.prototype.getColorAtAngle = function (angle) {
|
|
27
|
+
var prev = undefined;
|
|
28
|
+
var next = undefined;
|
|
29
|
+
for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
|
|
30
|
+
var color = _a[_i];
|
|
31
|
+
if (color.angle === angle)
|
|
32
|
+
return color.color;
|
|
33
|
+
if (color.angle < angle)
|
|
34
|
+
prev = color;
|
|
35
|
+
if (color.angle > angle) {
|
|
36
|
+
next = color;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
if (!prev || !next)
|
|
41
|
+
return undefined;
|
|
42
|
+
var coef = (angle - prev.angle) / (next.angle - prev.angle);
|
|
43
|
+
return new color_1.Color(Math.floor((next.color.red - prev.color.red) * coef + prev.color.red), Math.floor((next.color.green - prev.color.green) * coef + prev.color.green), Math.floor((next.color.blue - prev.color.blue) * coef + prev.color.blue));
|
|
44
|
+
};
|
|
45
|
+
ConicGradient.prototype.getAngleByColor = function (color) {
|
|
46
|
+
var prev;
|
|
47
|
+
var next = this.colors[0];
|
|
48
|
+
if (color.red === next.color.red && color.green === next.color.green && color.blue === next.color.blue)
|
|
49
|
+
return next.angle;
|
|
50
|
+
for (var i = 1; i < this.colors.length; i++) {
|
|
51
|
+
next = this.colors[i];
|
|
52
|
+
prev = this.colors[i - 1];
|
|
53
|
+
if (color.red === next.color.red && color.green === next.color.green && color.blue === next.color.blue)
|
|
54
|
+
return next.angle;
|
|
55
|
+
var redDif = next.color.red - prev.color.red;
|
|
56
|
+
var greenDif = next.color.green - prev.color.green;
|
|
57
|
+
var blueDif = next.color.blue - prev.color.blue;
|
|
58
|
+
var redDifColor = color.red - prev.color.red;
|
|
59
|
+
var greenDifColor = color.green - prev.color.green;
|
|
60
|
+
var blueDifColor = color.blue - prev.color.blue;
|
|
61
|
+
if (((redDifColor >= 0 && redDifColor <= redDif) || (redDifColor <= 0 && redDifColor >= redDif)) &&
|
|
62
|
+
((greenDifColor >= 0 && greenDifColor <= greenDif) || (greenDifColor <= 0 && greenDifColor >= greenDif)) &&
|
|
63
|
+
((blueDifColor >= 0 && blueDifColor <= blueDif) || (blueDifColor <= 0 && blueDifColor >= blueDif))) {
|
|
64
|
+
var redCoef = ((color.red - prev.color.red) / (next.color.red - prev.color.red));
|
|
65
|
+
var greenCoef = ((color.green - prev.color.green) / (next.color.green - prev.color.green));
|
|
66
|
+
var blueCoef = ((color.blue - prev.color.blue) / (next.color.blue - prev.color.blue));
|
|
67
|
+
var coefs = [redCoef, greenCoef, blueCoef].filter(Boolean);
|
|
68
|
+
return (next.angle - prev.angle) * Math.min.apply(Math, coefs) + prev.angle;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return undefined;
|
|
72
|
+
};
|
|
73
|
+
ConicGradient.prototype.isColorInRange = function (color) {
|
|
74
|
+
return Boolean(this.getAngleByColor(color));
|
|
75
|
+
};
|
|
76
|
+
ConicGradient.prototype.toCanvas = function (ctx, center) {
|
|
77
|
+
var gradient = ctx.createConicGradient.apply(ctx, __spreadArray([0], center, false));
|
|
78
|
+
for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
|
|
79
|
+
var color = _a[_i];
|
|
80
|
+
gradient.addColorStop(color.angle, color.color.toCSS());
|
|
81
|
+
}
|
|
82
|
+
return gradient;
|
|
83
|
+
};
|
|
84
|
+
ConicGradient.prototype.toCSS = function () {
|
|
85
|
+
var s = '';
|
|
86
|
+
for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
|
|
87
|
+
var color = _a[_i];
|
|
88
|
+
if (s)
|
|
89
|
+
s += ',';
|
|
90
|
+
s += "rgb(".concat(color.color.red, ",").concat(color.color.green, ",").concat(color.color.blue, ")");
|
|
91
|
+
}
|
|
92
|
+
s = "conic-gradient(in srgb from 0.25turn at 50% 50%, ".concat(s, ")");
|
|
93
|
+
return s;
|
|
94
|
+
};
|
|
95
|
+
return ConicGradient;
|
|
96
|
+
}());
|
|
97
|
+
exports.ConicGradient = ConicGradient;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./color"), exports);
|
|
18
|
+
__exportStar(require("./conic.gradient"), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Circle = void 0;
|
|
4
|
+
var matrix_1 = require("../matrix");
|
|
5
|
+
var Circle = (function () {
|
|
6
|
+
function Circle(center, r) {
|
|
7
|
+
this.center = center;
|
|
8
|
+
this.r = r;
|
|
9
|
+
}
|
|
10
|
+
Circle.prototype.transform = function (matrix) {
|
|
11
|
+
this.center = matrix_1.Matrix2d.apply(matrix, this.center);
|
|
12
|
+
};
|
|
13
|
+
return Circle;
|
|
14
|
+
}());
|
|
15
|
+
exports.Circle = Circle;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./point"), exports);
|
|
18
|
+
__exportStar(require("./circle"), exports);
|
|
19
|
+
__exportStar(require("./straight-line"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Point2 = void 0;
|
|
4
|
+
var Point2 = (function () {
|
|
5
|
+
function Point2() {
|
|
6
|
+
}
|
|
7
|
+
Point2.sum = function (p1, p2) {
|
|
8
|
+
return [
|
|
9
|
+
p1[0] + p2[0],
|
|
10
|
+
p1[1] + p2[1],
|
|
11
|
+
];
|
|
12
|
+
};
|
|
13
|
+
Point2.scale = function (v, factor) {
|
|
14
|
+
return [
|
|
15
|
+
v[0] * factor,
|
|
16
|
+
v[1] * factor,
|
|
17
|
+
];
|
|
18
|
+
};
|
|
19
|
+
return Point2;
|
|
20
|
+
}());
|
|
21
|
+
exports.Point2 = Point2;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StraightLine = void 0;
|
|
4
|
+
var matrix_1 = require("../matrix");
|
|
5
|
+
var StraightLine = (function () {
|
|
6
|
+
function StraightLine(p1, p2) {
|
|
7
|
+
this.p1 = p1;
|
|
8
|
+
this.p2 = p2;
|
|
9
|
+
}
|
|
10
|
+
StraightLine.prototype.transform = function (matrix, transformThis) {
|
|
11
|
+
if (transformThis === void 0) { transformThis = false; }
|
|
12
|
+
if (transformThis) {
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
return new StraightLine(matrix_1.Matrix2d.apply(matrix, this.p1), matrix_1.Matrix2d.apply(matrix, this.p2));
|
|
16
|
+
};
|
|
17
|
+
return StraightLine;
|
|
18
|
+
}());
|
|
19
|
+
exports.StraightLine = StraightLine;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./angle"), exports);
|
|
18
|
+
__exportStar(require("./matrix"), exports);
|
|
19
|
+
__exportStar(require("./operator"), exports);
|
|
20
|
+
__exportStar(require("./utils"), exports);
|
|
21
|
+
__exportStar(require("./colors"), exports);
|
|
22
|
+
__exportStar(require("./figures"), exports);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Matrix2d = exports.identityMatrix = void 0;
|
|
4
|
+
exports.identityMatrix = [1, 0, 0, 1, 0, 0];
|
|
5
|
+
var Matrix2d = (function () {
|
|
6
|
+
function Matrix2d() {
|
|
7
|
+
}
|
|
8
|
+
Matrix2d.multiply = function (matrix) {
|
|
9
|
+
var matrices = [];
|
|
10
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
11
|
+
matrices[_i - 1] = arguments[_i];
|
|
12
|
+
}
|
|
13
|
+
for (var _a = 0, matrices_1 = matrices; _a < matrices_1.length; _a++) {
|
|
14
|
+
var m = matrices_1[_a];
|
|
15
|
+
matrix = [
|
|
16
|
+
matrix[0] * m[0] + matrix[2] * m[1],
|
|
17
|
+
matrix[1] * m[0] + matrix[3] * m[1],
|
|
18
|
+
matrix[0] * m[2] + matrix[2] * m[3],
|
|
19
|
+
matrix[1] * m[2] + matrix[3] * m[3],
|
|
20
|
+
matrix[0] * m[4] + matrix[2] * m[5] + matrix[4],
|
|
21
|
+
matrix[1] * m[4] + matrix[3] * m[5] + matrix[5],
|
|
22
|
+
];
|
|
23
|
+
}
|
|
24
|
+
return matrix;
|
|
25
|
+
};
|
|
26
|
+
Matrix2d.apply = function (matrix, point) {
|
|
27
|
+
return [
|
|
28
|
+
matrix[0] * point[0] + matrix[2] * point[1] + matrix[4],
|
|
29
|
+
matrix[1] * point[0] + matrix[3] * point[1] + matrix[5],
|
|
30
|
+
];
|
|
31
|
+
};
|
|
32
|
+
return Matrix2d;
|
|
33
|
+
}());
|
|
34
|
+
exports.Matrix2d = Matrix2d;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Operator = void 0;
|
|
4
|
+
var angle_1 = require("./angle");
|
|
5
|
+
var Operator = (function () {
|
|
6
|
+
function Operator() {
|
|
7
|
+
}
|
|
8
|
+
Operator.rotateIdentity = function (angle, unit) {
|
|
9
|
+
if (unit === void 0) { unit = angle_1.AngleUnits.Deg; }
|
|
10
|
+
angle = angle_1.Angle.toRad(angle, unit);
|
|
11
|
+
this.temp1 = Math.cos(angle);
|
|
12
|
+
this.temp2 = Math.sin(angle);
|
|
13
|
+
return [
|
|
14
|
+
this.temp1,
|
|
15
|
+
this.temp2,
|
|
16
|
+
-this.temp2,
|
|
17
|
+
this.temp1,
|
|
18
|
+
0, 0
|
|
19
|
+
];
|
|
20
|
+
};
|
|
21
|
+
return Operator;
|
|
22
|
+
}());
|
|
23
|
+
exports.Operator = Operator;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.approximately = approximately;
|
|
4
|
+
exports.toPositive = toPositive;
|
|
5
|
+
exports.isCorrectNumber = isCorrectNumber;
|
|
6
|
+
function approximately(theValue, is, withPrecision) {
|
|
7
|
+
if (withPrecision === void 0) { withPrecision = 1e-8; }
|
|
8
|
+
return Math.abs(theValue - is) <= withPrecision;
|
|
9
|
+
}
|
|
10
|
+
function toPositive(value, range) {
|
|
11
|
+
if (value >= 0)
|
|
12
|
+
return Math.abs(value);
|
|
13
|
+
return Math.abs((range + value % range) % range);
|
|
14
|
+
}
|
|
15
|
+
function isCorrectNumber(value) {
|
|
16
|
+
var v = +value;
|
|
17
|
+
if (!isNaN(value) && isFinite(value)) {
|
|
18
|
+
v = parseFloat(value);
|
|
19
|
+
return !isNaN(v) && isFinite(v);
|
|
20
|
+
}
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './src';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare enum AngleUnits {
|
|
2
|
+
Deg = 0,
|
|
3
|
+
Rad = 1,
|
|
4
|
+
Turn = 2
|
|
5
|
+
}
|
|
6
|
+
export declare class Angle {
|
|
7
|
+
static toRad(angle: number, unit?: AngleUnits): number;
|
|
8
|
+
static toTurn(angle: number, unit?: AngleUnits): number;
|
|
9
|
+
static toDeg(angle: number, unit?: AngleUnits): number;
|
|
10
|
+
static toPositive(angle: number, unit: AngleUnits): number;
|
|
11
|
+
static normalize(angle: number, unit: AngleUnits): number;
|
|
12
|
+
static toCSS(angle: number, unit: AngleUnits): string;
|
|
13
|
+
static angleUnitCorrespondence: Record<AngleUnits, string>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Color } from "./color";
|
|
2
|
+
import { IPoint2 } from "../figures";
|
|
3
|
+
export declare class ConicGradient {
|
|
4
|
+
colors: {
|
|
5
|
+
angle: number;
|
|
6
|
+
color: Color;
|
|
7
|
+
}[];
|
|
8
|
+
constructor(...colors: {
|
|
9
|
+
angle: number;
|
|
10
|
+
color: Color;
|
|
11
|
+
}[]);
|
|
12
|
+
getColorAtAngle(angle: number): Color;
|
|
13
|
+
getAngleByColor(color: Color): number;
|
|
14
|
+
isColorInRange(color: Color): boolean;
|
|
15
|
+
toCanvas(ctx: CanvasRenderingContext2D, center: IPoint2): CanvasGradient;
|
|
16
|
+
toCSS(): string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { IPoint2 } from "./figures";
|
|
2
|
+
export type IMatrix2d = [
|
|
3
|
+
number,
|
|
4
|
+
number,
|
|
5
|
+
number,
|
|
6
|
+
number,
|
|
7
|
+
number,
|
|
8
|
+
number
|
|
9
|
+
];
|
|
10
|
+
export declare const identityMatrix: IMatrix2d;
|
|
11
|
+
export declare class Matrix2d {
|
|
12
|
+
static multiply(matrix: IMatrix2d, ...matrices: IMatrix2d[]): IMatrix2d;
|
|
13
|
+
static apply(matrix: IMatrix2d, point: IPoint2): IPoint2;
|
|
14
|
+
}
|
package/package.json
CHANGED
package/dist/math.d.ts
DELETED
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
declare module "src/utils" {
|
|
2
|
-
export function approximately(theValue: number, is: number, withPrecision?: number): boolean;
|
|
3
|
-
export function toPositive(value: number, range: number): number;
|
|
4
|
-
export function isCorrectNumber(value: any): boolean;
|
|
5
|
-
}
|
|
6
|
-
declare module "src/angle" {
|
|
7
|
-
export enum AngleUnits {
|
|
8
|
-
Deg = 0,
|
|
9
|
-
Rad = 1,
|
|
10
|
-
Turn = 2
|
|
11
|
-
}
|
|
12
|
-
export class Angle {
|
|
13
|
-
static toRad(angle: number, unit?: AngleUnits): number;
|
|
14
|
-
static toTurn(angle: number, unit?: AngleUnits): number;
|
|
15
|
-
static toDeg(angle: number, unit?: AngleUnits): number;
|
|
16
|
-
static toPositive(angle: number, unit: AngleUnits): number;
|
|
17
|
-
static normalize(angle: number, unit: AngleUnits): number;
|
|
18
|
-
static toCSS(angle: number, unit: AngleUnits): string;
|
|
19
|
-
static angleUnitCorrespondence: Record<AngleUnits, string>;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
declare module "src/figures/point" {
|
|
23
|
-
export type IPoint2 = [number, number];
|
|
24
|
-
export class Point2 {
|
|
25
|
-
static sum(p1: IPoint2, p2: IPoint2): IPoint2;
|
|
26
|
-
static scale(v: IPoint2, factor: number): IPoint2;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
declare module "src/figures/circle" {
|
|
30
|
-
import { IPoint2 } from "src/figures/point";
|
|
31
|
-
import { IMatrix2d } from "src/matrix";
|
|
32
|
-
export class Circle {
|
|
33
|
-
center: IPoint2;
|
|
34
|
-
r: number;
|
|
35
|
-
constructor(center: IPoint2, r: number);
|
|
36
|
-
transform(matrix: IMatrix2d): void;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
declare module "src/figures/straight-line" {
|
|
40
|
-
import { IPoint2 } from "src/figures/point";
|
|
41
|
-
import { IMatrix2d } from "src/matrix";
|
|
42
|
-
export class StraightLine {
|
|
43
|
-
p1: IPoint2;
|
|
44
|
-
p2: IPoint2;
|
|
45
|
-
constructor(p1: IPoint2, p2: IPoint2);
|
|
46
|
-
transform(matrix: IMatrix2d, transformThis?: boolean): StraightLine;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
declare module "src/figures/index" {
|
|
50
|
-
export * from "src/figures/point";
|
|
51
|
-
export * from "src/figures/circle";
|
|
52
|
-
export * from "src/figures/straight-line";
|
|
53
|
-
}
|
|
54
|
-
declare module "src/matrix" {
|
|
55
|
-
import { IPoint2 } from "src/figures/index";
|
|
56
|
-
export type IMatrix2d = [
|
|
57
|
-
number,
|
|
58
|
-
number,
|
|
59
|
-
number,
|
|
60
|
-
number,
|
|
61
|
-
number,
|
|
62
|
-
number
|
|
63
|
-
];
|
|
64
|
-
export const identityMatrix: IMatrix2d;
|
|
65
|
-
export class Matrix2d {
|
|
66
|
-
static multiply(matrix: IMatrix2d, ...matrices: IMatrix2d[]): IMatrix2d;
|
|
67
|
-
static apply(matrix: IMatrix2d, point: IPoint2): IPoint2;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
declare module "src/operator" {
|
|
71
|
-
import { IMatrix2d } from "src/matrix";
|
|
72
|
-
import { AngleUnits } from "src/angle";
|
|
73
|
-
export class Operator {
|
|
74
|
-
private static temp1;
|
|
75
|
-
private static temp2;
|
|
76
|
-
static rotateIdentity(angle: number, unit?: AngleUnits): IMatrix2d;
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
declare module "src/colors/color" {
|
|
80
|
-
export class Color {
|
|
81
|
-
red: number;
|
|
82
|
-
green: number;
|
|
83
|
-
blue: number;
|
|
84
|
-
constructor(red: number, green: number, blue: number);
|
|
85
|
-
toCSS(): string;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
declare module "src/colors/conic.gradient" {
|
|
89
|
-
import { Color } from "src/colors/color";
|
|
90
|
-
import { IPoint2 } from "src/figures/index";
|
|
91
|
-
export class ConicGradient {
|
|
92
|
-
colors: {
|
|
93
|
-
angle: number;
|
|
94
|
-
color: Color;
|
|
95
|
-
}[];
|
|
96
|
-
constructor(...colors: {
|
|
97
|
-
angle: number;
|
|
98
|
-
color: Color;
|
|
99
|
-
}[]);
|
|
100
|
-
getColorAtAngle(angle: number): Color;
|
|
101
|
-
getAngleByColor(color: Color): number;
|
|
102
|
-
isColorInRange(color: Color): boolean;
|
|
103
|
-
toCanvas(ctx: CanvasRenderingContext2D, center: IPoint2): CanvasGradient;
|
|
104
|
-
toCSS(): string;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
declare module "src/colors/index" {
|
|
108
|
-
export * from "src/colors/color";
|
|
109
|
-
export * from "src/colors/conic.gradient";
|
|
110
|
-
}
|
|
111
|
-
declare module "src/index" {
|
|
112
|
-
export * from "src/angle";
|
|
113
|
-
export * from "src/matrix";
|
|
114
|
-
export * from "src/operator";
|
|
115
|
-
export * from "src/utils";
|
|
116
|
-
export * from "src/colors/index";
|
|
117
|
-
export * from "src/figures/index";
|
|
118
|
-
}
|
|
119
|
-
declare module "index" {
|
|
120
|
-
export * from "src/index";
|
|
121
|
-
}
|
package/dist/math.js
DELETED
|
@@ -1,385 +0,0 @@
|
|
|
1
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
2
|
-
if (k2 === undefined) k2 = k;
|
|
3
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
4
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
5
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
6
|
-
}
|
|
7
|
-
Object.defineProperty(o, k2, desc);
|
|
8
|
-
}) : (function(o, m, k, k2) {
|
|
9
|
-
if (k2 === undefined) k2 = k;
|
|
10
|
-
o[k2] = m[k];
|
|
11
|
-
}));
|
|
12
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
13
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
14
|
-
};
|
|
15
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
16
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
17
|
-
if (ar || !(i in from)) {
|
|
18
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
19
|
-
ar[i] = from[i];
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
23
|
-
};
|
|
24
|
-
define("src/utils", ["require", "exports"], function (require, exports) {
|
|
25
|
-
"use strict";
|
|
26
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
-
exports.approximately = approximately;
|
|
28
|
-
exports.toPositive = toPositive;
|
|
29
|
-
exports.isCorrectNumber = isCorrectNumber;
|
|
30
|
-
function approximately(theValue, is, withPrecision) {
|
|
31
|
-
if (withPrecision === void 0) { withPrecision = 1e-8; }
|
|
32
|
-
return Math.abs(theValue - is) <= withPrecision;
|
|
33
|
-
}
|
|
34
|
-
function toPositive(value, range) {
|
|
35
|
-
if (value >= 0)
|
|
36
|
-
return Math.abs(value);
|
|
37
|
-
return Math.abs((range + value % range) % range);
|
|
38
|
-
}
|
|
39
|
-
function isCorrectNumber(value) {
|
|
40
|
-
var v = +value;
|
|
41
|
-
if (!isNaN(value) && isFinite(value)) {
|
|
42
|
-
v = parseFloat(value);
|
|
43
|
-
return !isNaN(v) && isFinite(v);
|
|
44
|
-
}
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
define("src/angle", ["require", "exports", "src/utils"], function (require, exports, utils_1) {
|
|
49
|
-
"use strict";
|
|
50
|
-
var _a;
|
|
51
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
52
|
-
exports.Angle = exports.AngleUnits = void 0;
|
|
53
|
-
var AngleUnits;
|
|
54
|
-
(function (AngleUnits) {
|
|
55
|
-
AngleUnits[AngleUnits["Deg"] = 0] = "Deg";
|
|
56
|
-
AngleUnits[AngleUnits["Rad"] = 1] = "Rad";
|
|
57
|
-
AngleUnits[AngleUnits["Turn"] = 2] = "Turn";
|
|
58
|
-
})(AngleUnits || (exports.AngleUnits = AngleUnits = {}));
|
|
59
|
-
var Angle = (function () {
|
|
60
|
-
function Angle() {
|
|
61
|
-
}
|
|
62
|
-
Angle.toRad = function (angle, unit) {
|
|
63
|
-
if (unit === void 0) { unit = AngleUnits.Deg; }
|
|
64
|
-
switch (unit) {
|
|
65
|
-
case AngleUnits.Rad:
|
|
66
|
-
return angle;
|
|
67
|
-
case AngleUnits.Deg:
|
|
68
|
-
return angle * Math.PI / 180;
|
|
69
|
-
case AngleUnits.Turn:
|
|
70
|
-
return Math.PI * 2 * angle;
|
|
71
|
-
}
|
|
72
|
-
};
|
|
73
|
-
Angle.toTurn = function (angle, unit) {
|
|
74
|
-
if (unit === void 0) { unit = AngleUnits.Deg; }
|
|
75
|
-
switch (unit) {
|
|
76
|
-
case AngleUnits.Turn:
|
|
77
|
-
return angle;
|
|
78
|
-
case AngleUnits.Deg:
|
|
79
|
-
return angle / 360;
|
|
80
|
-
case AngleUnits.Rad:
|
|
81
|
-
return angle / (Math.PI * 2);
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
Angle.toDeg = function (angle, unit) {
|
|
85
|
-
if (unit === void 0) { unit = AngleUnits.Rad; }
|
|
86
|
-
switch (unit) {
|
|
87
|
-
case AngleUnits.Deg:
|
|
88
|
-
return angle;
|
|
89
|
-
case AngleUnits.Turn:
|
|
90
|
-
return angle * 360;
|
|
91
|
-
case AngleUnits.Rad:
|
|
92
|
-
return angle * 180 / Math.PI;
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
Angle.toPositive = function (angle, unit) {
|
|
96
|
-
switch (unit) {
|
|
97
|
-
case AngleUnits.Deg:
|
|
98
|
-
return (0, utils_1.toPositive)(angle, 360);
|
|
99
|
-
case AngleUnits.Turn:
|
|
100
|
-
return (0, utils_1.toPositive)(angle, 1);
|
|
101
|
-
case AngleUnits.Rad:
|
|
102
|
-
return (0, utils_1.toPositive)(angle, Math.PI * 2);
|
|
103
|
-
}
|
|
104
|
-
};
|
|
105
|
-
Angle.normalize = function (angle, unit) {
|
|
106
|
-
switch (unit) {
|
|
107
|
-
case AngleUnits.Deg:
|
|
108
|
-
return Angle.toPositive(angle, unit) % 360;
|
|
109
|
-
case AngleUnits.Rad:
|
|
110
|
-
return Angle.toPositive(angle, unit) % (Math.PI * 2);
|
|
111
|
-
case AngleUnits.Turn:
|
|
112
|
-
return Angle.toPositive(angle, unit) % 1;
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
Angle.toCSS = function (angle, unit) {
|
|
116
|
-
if (!(0, utils_1.isCorrectNumber)(angle))
|
|
117
|
-
return '';
|
|
118
|
-
return "rotate(".concat(angle).concat(Angle.angleUnitCorrespondence[unit], ")");
|
|
119
|
-
};
|
|
120
|
-
Angle.angleUnitCorrespondence = (_a = {},
|
|
121
|
-
_a[AngleUnits.Rad] = 'rad',
|
|
122
|
-
_a[AngleUnits.Turn] = 'turn',
|
|
123
|
-
_a[AngleUnits.Deg] = 'deg',
|
|
124
|
-
_a);
|
|
125
|
-
return Angle;
|
|
126
|
-
}());
|
|
127
|
-
exports.Angle = Angle;
|
|
128
|
-
});
|
|
129
|
-
define("src/figures/point", ["require", "exports"], function (require, exports) {
|
|
130
|
-
"use strict";
|
|
131
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
132
|
-
exports.Point2 = void 0;
|
|
133
|
-
var Point2 = (function () {
|
|
134
|
-
function Point2() {
|
|
135
|
-
}
|
|
136
|
-
Point2.sum = function (p1, p2) {
|
|
137
|
-
return [
|
|
138
|
-
p1[0] + p2[0],
|
|
139
|
-
p1[1] + p2[1],
|
|
140
|
-
];
|
|
141
|
-
};
|
|
142
|
-
Point2.scale = function (v, factor) {
|
|
143
|
-
return [
|
|
144
|
-
v[0] * factor,
|
|
145
|
-
v[1] * factor,
|
|
146
|
-
];
|
|
147
|
-
};
|
|
148
|
-
return Point2;
|
|
149
|
-
}());
|
|
150
|
-
exports.Point2 = Point2;
|
|
151
|
-
});
|
|
152
|
-
define("src/figures/circle", ["require", "exports", "src/matrix"], function (require, exports, matrix_1) {
|
|
153
|
-
"use strict";
|
|
154
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
155
|
-
exports.Circle = void 0;
|
|
156
|
-
var Circle = (function () {
|
|
157
|
-
function Circle(center, r) {
|
|
158
|
-
this.center = center;
|
|
159
|
-
this.r = r;
|
|
160
|
-
}
|
|
161
|
-
Circle.prototype.transform = function (matrix) {
|
|
162
|
-
this.center = matrix_1.Matrix2d.apply(matrix, this.center);
|
|
163
|
-
};
|
|
164
|
-
return Circle;
|
|
165
|
-
}());
|
|
166
|
-
exports.Circle = Circle;
|
|
167
|
-
});
|
|
168
|
-
define("src/figures/straight-line", ["require", "exports", "src/matrix"], function (require, exports, matrix_2) {
|
|
169
|
-
"use strict";
|
|
170
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
171
|
-
exports.StraightLine = void 0;
|
|
172
|
-
var StraightLine = (function () {
|
|
173
|
-
function StraightLine(p1, p2) {
|
|
174
|
-
this.p1 = p1;
|
|
175
|
-
this.p2 = p2;
|
|
176
|
-
}
|
|
177
|
-
StraightLine.prototype.transform = function (matrix, transformThis) {
|
|
178
|
-
if (transformThis === void 0) { transformThis = false; }
|
|
179
|
-
if (transformThis) {
|
|
180
|
-
return this;
|
|
181
|
-
}
|
|
182
|
-
return new StraightLine(matrix_2.Matrix2d.apply(matrix, this.p1), matrix_2.Matrix2d.apply(matrix, this.p2));
|
|
183
|
-
};
|
|
184
|
-
return StraightLine;
|
|
185
|
-
}());
|
|
186
|
-
exports.StraightLine = StraightLine;
|
|
187
|
-
});
|
|
188
|
-
define("src/figures/index", ["require", "exports", "src/figures/point", "src/figures/circle", "src/figures/straight-line"], function (require, exports, point_1, circle_1, straight_line_1) {
|
|
189
|
-
"use strict";
|
|
190
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
191
|
-
__exportStar(point_1, exports);
|
|
192
|
-
__exportStar(circle_1, exports);
|
|
193
|
-
__exportStar(straight_line_1, exports);
|
|
194
|
-
});
|
|
195
|
-
define("src/matrix", ["require", "exports"], function (require, exports) {
|
|
196
|
-
"use strict";
|
|
197
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
198
|
-
exports.Matrix2d = exports.identityMatrix = void 0;
|
|
199
|
-
exports.identityMatrix = [1, 0, 0, 1, 0, 0];
|
|
200
|
-
var Matrix2d = (function () {
|
|
201
|
-
function Matrix2d() {
|
|
202
|
-
}
|
|
203
|
-
Matrix2d.multiply = function (matrix) {
|
|
204
|
-
var matrices = [];
|
|
205
|
-
for (var _i = 1; _i < arguments.length; _i++) {
|
|
206
|
-
matrices[_i - 1] = arguments[_i];
|
|
207
|
-
}
|
|
208
|
-
for (var _a = 0, matrices_1 = matrices; _a < matrices_1.length; _a++) {
|
|
209
|
-
var m = matrices_1[_a];
|
|
210
|
-
matrix = [
|
|
211
|
-
matrix[0] * m[0] + matrix[2] * m[1],
|
|
212
|
-
matrix[1] * m[0] + matrix[3] * m[1],
|
|
213
|
-
matrix[0] * m[2] + matrix[2] * m[3],
|
|
214
|
-
matrix[1] * m[2] + matrix[3] * m[3],
|
|
215
|
-
matrix[0] * m[4] + matrix[2] * m[5] + matrix[4],
|
|
216
|
-
matrix[1] * m[4] + matrix[3] * m[5] + matrix[5],
|
|
217
|
-
];
|
|
218
|
-
}
|
|
219
|
-
return matrix;
|
|
220
|
-
};
|
|
221
|
-
Matrix2d.apply = function (matrix, point) {
|
|
222
|
-
return [
|
|
223
|
-
matrix[0] * point[0] + matrix[2] * point[1] + matrix[4],
|
|
224
|
-
matrix[1] * point[0] + matrix[3] * point[1] + matrix[5],
|
|
225
|
-
];
|
|
226
|
-
};
|
|
227
|
-
return Matrix2d;
|
|
228
|
-
}());
|
|
229
|
-
exports.Matrix2d = Matrix2d;
|
|
230
|
-
});
|
|
231
|
-
define("src/operator", ["require", "exports", "src/angle"], function (require, exports, angle_1) {
|
|
232
|
-
"use strict";
|
|
233
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
234
|
-
exports.Operator = void 0;
|
|
235
|
-
var Operator = (function () {
|
|
236
|
-
function Operator() {
|
|
237
|
-
}
|
|
238
|
-
Operator.rotateIdentity = function (angle, unit) {
|
|
239
|
-
if (unit === void 0) { unit = angle_1.AngleUnits.Deg; }
|
|
240
|
-
angle = angle_1.Angle.toRad(angle, unit);
|
|
241
|
-
this.temp1 = Math.cos(angle);
|
|
242
|
-
this.temp2 = Math.sin(angle);
|
|
243
|
-
return [
|
|
244
|
-
this.temp1,
|
|
245
|
-
this.temp2,
|
|
246
|
-
-this.temp2,
|
|
247
|
-
this.temp1,
|
|
248
|
-
0, 0
|
|
249
|
-
];
|
|
250
|
-
};
|
|
251
|
-
return Operator;
|
|
252
|
-
}());
|
|
253
|
-
exports.Operator = Operator;
|
|
254
|
-
});
|
|
255
|
-
define("src/colors/color", ["require", "exports"], function (require, exports) {
|
|
256
|
-
"use strict";
|
|
257
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
258
|
-
exports.Color = void 0;
|
|
259
|
-
var Color = (function () {
|
|
260
|
-
function Color(red, green, blue) {
|
|
261
|
-
this.red = red;
|
|
262
|
-
this.green = green;
|
|
263
|
-
this.blue = blue;
|
|
264
|
-
this.red = Math.max(Math.min(red, 255), 0);
|
|
265
|
-
this.green = Math.max(Math.min(green, 255), 0);
|
|
266
|
-
this.blue = Math.max(Math.min(blue, 255), 0);
|
|
267
|
-
}
|
|
268
|
-
Color.prototype.toCSS = function () {
|
|
269
|
-
return "rgb(".concat(this.red, ", ").concat(this.green, ", ").concat(this.blue, ")");
|
|
270
|
-
};
|
|
271
|
-
return Color;
|
|
272
|
-
}());
|
|
273
|
-
exports.Color = Color;
|
|
274
|
-
});
|
|
275
|
-
define("src/colors/conic.gradient", ["require", "exports", "src/colors/color"], function (require, exports, color_1) {
|
|
276
|
-
"use strict";
|
|
277
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
278
|
-
exports.ConicGradient = void 0;
|
|
279
|
-
var ConicGradient = (function () {
|
|
280
|
-
function ConicGradient() {
|
|
281
|
-
var colors = [];
|
|
282
|
-
for (var _i = 0; _i < arguments.length; _i++) {
|
|
283
|
-
colors[_i] = arguments[_i];
|
|
284
|
-
}
|
|
285
|
-
this.colors = __spreadArray([], colors, true).sort(function (a, b) { return a.angle - b.angle; });
|
|
286
|
-
this.colors.push({
|
|
287
|
-
angle: 1,
|
|
288
|
-
color: this.colors[0].color
|
|
289
|
-
});
|
|
290
|
-
}
|
|
291
|
-
ConicGradient.prototype.getColorAtAngle = function (angle) {
|
|
292
|
-
var prev = undefined;
|
|
293
|
-
var next = undefined;
|
|
294
|
-
for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
|
|
295
|
-
var color = _a[_i];
|
|
296
|
-
if (color.angle === angle)
|
|
297
|
-
return color.color;
|
|
298
|
-
if (color.angle < angle)
|
|
299
|
-
prev = color;
|
|
300
|
-
if (color.angle > angle) {
|
|
301
|
-
next = color;
|
|
302
|
-
break;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
if (!prev || !next)
|
|
306
|
-
return undefined;
|
|
307
|
-
var coef = (angle - prev.angle) / (next.angle - prev.angle);
|
|
308
|
-
return new color_1.Color(Math.floor((next.color.red - prev.color.red) * coef + prev.color.red), Math.floor((next.color.green - prev.color.green) * coef + prev.color.green), Math.floor((next.color.blue - prev.color.blue) * coef + prev.color.blue));
|
|
309
|
-
};
|
|
310
|
-
ConicGradient.prototype.getAngleByColor = function (color) {
|
|
311
|
-
var prev;
|
|
312
|
-
var next = this.colors[0];
|
|
313
|
-
if (color.red === next.color.red && color.green === next.color.green && color.blue === next.color.blue)
|
|
314
|
-
return next.angle;
|
|
315
|
-
for (var i = 1; i < this.colors.length; i++) {
|
|
316
|
-
next = this.colors[i];
|
|
317
|
-
prev = this.colors[i - 1];
|
|
318
|
-
if (color.red === next.color.red && color.green === next.color.green && color.blue === next.color.blue)
|
|
319
|
-
return next.angle;
|
|
320
|
-
var redDif = next.color.red - prev.color.red;
|
|
321
|
-
var greenDif = next.color.green - prev.color.green;
|
|
322
|
-
var blueDif = next.color.blue - prev.color.blue;
|
|
323
|
-
var redDifColor = color.red - prev.color.red;
|
|
324
|
-
var greenDifColor = color.green - prev.color.green;
|
|
325
|
-
var blueDifColor = color.blue - prev.color.blue;
|
|
326
|
-
if (((redDifColor >= 0 && redDifColor <= redDif) || (redDifColor <= 0 && redDifColor >= redDif)) &&
|
|
327
|
-
((greenDifColor >= 0 && greenDifColor <= greenDif) || (greenDifColor <= 0 && greenDifColor >= greenDif)) &&
|
|
328
|
-
((blueDifColor >= 0 && blueDifColor <= blueDif) || (blueDifColor <= 0 && blueDifColor >= blueDif))) {
|
|
329
|
-
var redCoef = ((color.red - prev.color.red) / (next.color.red - prev.color.red));
|
|
330
|
-
var greenCoef = ((color.green - prev.color.green) / (next.color.green - prev.color.green));
|
|
331
|
-
var blueCoef = ((color.blue - prev.color.blue) / (next.color.blue - prev.color.blue));
|
|
332
|
-
var coefs = [redCoef, greenCoef, blueCoef].filter(Boolean);
|
|
333
|
-
return (next.angle - prev.angle) * Math.min.apply(Math, coefs) + prev.angle;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
return undefined;
|
|
337
|
-
};
|
|
338
|
-
ConicGradient.prototype.isColorInRange = function (color) {
|
|
339
|
-
return Boolean(this.getAngleByColor(color));
|
|
340
|
-
};
|
|
341
|
-
ConicGradient.prototype.toCanvas = function (ctx, center) {
|
|
342
|
-
var gradient = ctx.createConicGradient.apply(ctx, __spreadArray([0], center, false));
|
|
343
|
-
for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
|
|
344
|
-
var color = _a[_i];
|
|
345
|
-
gradient.addColorStop(color.angle, color.color.toCSS());
|
|
346
|
-
}
|
|
347
|
-
return gradient;
|
|
348
|
-
};
|
|
349
|
-
ConicGradient.prototype.toCSS = function () {
|
|
350
|
-
var s = '';
|
|
351
|
-
for (var _i = 0, _a = this.colors; _i < _a.length; _i++) {
|
|
352
|
-
var color = _a[_i];
|
|
353
|
-
if (s)
|
|
354
|
-
s += ',';
|
|
355
|
-
s += "rgb(".concat(color.color.red, ",").concat(color.color.green, ",").concat(color.color.blue, ")");
|
|
356
|
-
}
|
|
357
|
-
s = "conic-gradient(in srgb from 0.25turn at 50% 50%, ".concat(s, ")");
|
|
358
|
-
return s;
|
|
359
|
-
};
|
|
360
|
-
return ConicGradient;
|
|
361
|
-
}());
|
|
362
|
-
exports.ConicGradient = ConicGradient;
|
|
363
|
-
});
|
|
364
|
-
define("src/colors/index", ["require", "exports", "src/colors/color", "src/colors/conic.gradient"], function (require, exports, color_2, conic_gradient_1) {
|
|
365
|
-
"use strict";
|
|
366
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
367
|
-
__exportStar(color_2, exports);
|
|
368
|
-
__exportStar(conic_gradient_1, exports);
|
|
369
|
-
});
|
|
370
|
-
define("src/index", ["require", "exports", "src/angle", "src/matrix", "src/operator", "src/utils", "src/colors/index", "src/figures/index"], function (require, exports, angle_2, matrix_3, operator_1, utils_2, colors_1, figures_1) {
|
|
371
|
-
"use strict";
|
|
372
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
373
|
-
__exportStar(angle_2, exports);
|
|
374
|
-
__exportStar(matrix_3, exports);
|
|
375
|
-
__exportStar(operator_1, exports);
|
|
376
|
-
__exportStar(utils_2, exports);
|
|
377
|
-
__exportStar(colors_1, exports);
|
|
378
|
-
__exportStar(figures_1, exports);
|
|
379
|
-
});
|
|
380
|
-
define("index", ["require", "exports", "src/index"], function (require, exports, src_1) {
|
|
381
|
-
"use strict";
|
|
382
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
383
|
-
__exportStar(src_1, exports);
|
|
384
|
-
});
|
|
385
|
-
//# sourceMappingURL=math.js.map
|
package/dist/math.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","sourceRoot":"","sources":["../src/utils.ts","../src/angle.ts","../src/figures/point.ts","../src/figures/circle.ts","../src/figures/straight-line.ts","../src/figures/index.ts","../src/matrix.ts","../src/operator.ts","../src/colors/color.ts","../src/colors/conic.gradient.ts","../src/colors/index.ts","../src/index.ts","../index.ts"],"names":[],"mappings":"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"}
|