1 | "use strict";
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.translateEndAngle = exports.arcCommands = exports.polarToCartesian = exports.baseUnit = void 0;
|
5 | var POST_DECIMAL_DIGITS = 10;
|
6 | var baseUnit = 24;
|
7 | exports.baseUnit = baseUnit;
|
8 |
|
9 | var polarToCartesian = function polarToCartesian(centerX, centerY, radius, angleInDegrees) {
|
10 | var angleInRadians = (angleInDegrees - 90) * Math.PI / 180.0;
|
11 | return {
|
12 | x: centerX + radius * Math.cos(angleInRadians),
|
13 | y: centerY + radius * Math.sin(angleInRadians)
|
14 | };
|
15 | };
|
16 |
|
17 | exports.polarToCartesian = polarToCartesian;
|
18 |
|
19 | var arcCommands = function arcCommands(centerX, centerY, radius, startAngle, endAngle) {
|
20 |
|
21 | var normalizedEndAngle = endAngle;
|
22 |
|
23 | if (endAngle - startAngle >= 360) {
|
24 | normalizedEndAngle = startAngle + 359.99;
|
25 | }
|
26 |
|
27 | var start = polarToCartesian(centerX, centerY, radius, normalizedEndAngle);
|
28 | var end = polarToCartesian(centerX, centerY, radius, startAngle);
|
29 | var arcSweep = normalizedEndAngle - startAngle <= 180 ? '0' : '1';
|
30 | var d = ['M', start.x.toFixed(POST_DECIMAL_DIGITS), start.y.toFixed(POST_DECIMAL_DIGITS), 'A', radius.toFixed(POST_DECIMAL_DIGITS), radius.toFixed(POST_DECIMAL_DIGITS), 0, arcSweep, 0, end.x.toFixed(POST_DECIMAL_DIGITS), end.y.toFixed(POST_DECIMAL_DIGITS)].join(' ');
|
31 | return d;
|
32 | };
|
33 |
|
34 | exports.arcCommands = arcCommands;
|
35 |
|
36 | var translateEndAngle = function translateEndAngle(startAngle, anglePer, value) {
|
37 | return Math.min(360, Math.max(0, startAngle + anglePer * value));
|
38 | };
|
39 |
|
40 | exports.translateEndAngle = translateEndAngle; |
\ | No newline at end of file |