plotboilerplate 1.23.2 → 1.24.0
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/README.md +6 -0
- package/dist/index.esm.js +8351 -6928
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.min.js +1 -1
- package/dist/index.esm.min.js.map +1 -1
- package/dist/plotboilerplate.browser.min.js +1 -1
- package/dist/plotboilerplate.browser.min.js.map +1 -1
- package/dist/plotboilerplate.js +1590 -123
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +4 -2
- package/src/cjs/BezierPath.d.ts +41 -5
- package/src/cjs/BezierPath.js +52 -2
- package/src/cjs/BezierPath.js.map +1 -1
- package/src/cjs/Bounds.d.ts +67 -3
- package/src/cjs/Bounds.js +101 -3
- package/src/cjs/Bounds.js.map +1 -1
- package/src/cjs/Circle.d.ts +46 -4
- package/src/cjs/Circle.js +82 -3
- package/src/cjs/Circle.js.map +1 -1
- package/src/cjs/CircleSector.d.ts +51 -2
- package/src/cjs/CircleSector.js +112 -3
- package/src/cjs/CircleSector.js.map +1 -1
- package/src/cjs/CubicBezierCurve.d.ts +113 -7
- package/src/cjs/CubicBezierCurve.js +281 -33
- package/src/cjs/CubicBezierCurve.js.map +1 -1
- package/src/cjs/Line.d.ts +38 -3
- package/src/cjs/Line.js +64 -1
- package/src/cjs/Line.js.map +1 -1
- package/src/cjs/PlotBoilerplate.d.ts +4 -2
- package/src/cjs/PlotBoilerplate.js +9 -12
- package/src/cjs/PlotBoilerplate.js.map +1 -1
- package/src/cjs/Polygon.d.ts +153 -6
- package/src/cjs/Polygon.js +304 -23
- package/src/cjs/Polygon.js.map +1 -1
- package/src/cjs/Triangle.d.ts +73 -4
- package/src/cjs/Triangle.js +94 -2
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VEllipse.d.ts +62 -3
- package/src/cjs/VEllipse.js +181 -17
- package/src/cjs/VEllipse.js.map +1 -1
- package/src/cjs/VEllipseSector.d.ts +86 -2
- package/src/cjs/VEllipseSector.js +148 -4
- package/src/cjs/VEllipseSector.js.map +1 -1
- package/src/cjs/Vector.d.ts +12 -2
- package/src/cjs/Vector.js +15 -2
- package/src/cjs/Vector.js.map +1 -1
- package/src/cjs/VertTuple.d.ts +39 -10
- package/src/cjs/VertTuple.js +49 -11
- package/src/cjs/VertTuple.js.map +1 -1
- package/src/cjs/Vertex.d.ts +18 -2
- package/src/cjs/Vertex.js +22 -2
- package/src/cjs/Vertex.js.map +1 -1
- package/src/cjs/draw.d.ts +1 -0
- package/src/cjs/draw.js +2 -1
- package/src/cjs/draw.js.map +1 -1
- package/src/cjs/drawutilssvg.js +24 -0
- package/src/cjs/drawutilssvg.js.map +1 -1
- package/src/cjs/geomutils.d.ts +32 -1
- package/src/cjs/geomutils.js +47 -1
- package/src/cjs/geomutils.js.map +1 -1
- package/src/cjs/interfaces/core.d.ts +39 -0
- package/src/cjs/interfaces/core.js +2 -0
- package/src/cjs/interfaces/core.js.map +1 -1
- package/src/cjs/utils/algorithms/PolygonInset.d.ts +184 -0
- package/src/cjs/utils/algorithms/PolygonInset.js +431 -0
- package/src/cjs/utils/algorithms/PolygonInset.js.map +1 -0
- package/src/cjs/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
- package/src/cjs/utils/algorithms/clearDuplicateVertices.js +6 -3
- package/src/cjs/utils/algorithms/clearDuplicateVertices.js.map +1 -1
- package/src/cjs/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
- package/src/cjs/utils/algorithms/convexPolygonIncircle.js +14 -6
- package/src/cjs/utils/algorithms/convexPolygonIncircle.js.map +1 -1
- package/src/cjs/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
- package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js +3 -3
- package/src/cjs/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
- package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
- package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
- package/src/cjs/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
- package/src/cjs/utils/createRandomizedPolygon.d.ts +14 -0
- package/src/cjs/utils/createRandomizedPolygon.js +32 -0
- package/src/cjs/utils/createRandomizedPolygon.js.map +1 -0
- package/src/cjs/utils/detectDarkMode.js.map +1 -1
- package/src/cjs/utils/dom/guiSizeToggler.d.ts +2 -1
- package/src/cjs/utils/dom/guiSizeToggler.js +5 -3
- package/src/cjs/utils/dom/guiSizeToggler.js.map +1 -1
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.d.ts +9 -7
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js +37 -23
- package/src/cjs/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/cjs/utils/helpers/CircleSectorHelper.d.ts +10 -1
- package/src/cjs/utils/helpers/CircleSectorHelper.js +19 -20
- package/src/cjs/utils/helpers/CircleSectorHelper.js.map +1 -1
- package/src/cjs/utils/helpers/VEllipseHelper.d.ts +30 -0
- package/src/cjs/utils/helpers/VEllipseHelper.js +86 -0
- package/src/cjs/utils/helpers/VEllipseHelper.js.map +1 -0
- package/src/cjs/utils/helpers/VEllipseSectorHelper.d.ts +42 -3
- package/src/cjs/utils/helpers/VEllipseSectorHelper.js +107 -25
- package/src/cjs/utils/helpers/VEllipseSectorHelper.js.map +1 -1
- package/src/createDemoDrawables.js +3 -1
- package/src/esm/BezierPath.d.ts +41 -5
- package/src/esm/BezierPath.js +50 -2
- package/src/esm/BezierPath.js.map +1 -1
- package/src/esm/Bounds.d.ts +67 -3
- package/src/esm/Bounds.js +101 -3
- package/src/esm/Bounds.js.map +1 -1
- package/src/esm/Circle.d.ts +46 -4
- package/src/esm/Circle.js +79 -3
- package/src/esm/Circle.js.map +1 -1
- package/src/esm/CircleSector.d.ts +51 -2
- package/src/esm/CircleSector.js +108 -3
- package/src/esm/CircleSector.js.map +1 -1
- package/src/esm/CubicBezierCurve.d.ts +113 -7
- package/src/esm/CubicBezierCurve.js +277 -33
- package/src/esm/CubicBezierCurve.js.map +1 -1
- package/src/esm/Line.d.ts +38 -3
- package/src/esm/Line.js +62 -1
- package/src/esm/Line.js.map +1 -1
- package/src/esm/PlotBoilerplate.d.ts +4 -2
- package/src/esm/PlotBoilerplate.js +9 -12
- package/src/esm/PlotBoilerplate.js.map +1 -1
- package/src/esm/Polygon.d.ts +153 -6
- package/src/esm/Polygon.js +301 -23
- package/src/esm/Polygon.js.map +1 -1
- package/src/esm/Triangle.d.ts +73 -4
- package/src/esm/Triangle.js +91 -2
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VEllipse.d.ts +62 -3
- package/src/esm/VEllipse.js +178 -17
- package/src/esm/VEllipse.js.map +1 -1
- package/src/esm/VEllipseSector.d.ts +86 -2
- package/src/esm/VEllipseSector.js +146 -7
- package/src/esm/VEllipseSector.js.map +1 -1
- package/src/esm/Vector.d.ts +12 -2
- package/src/esm/Vector.js +15 -2
- package/src/esm/Vector.js.map +1 -1
- package/src/esm/VertTuple.d.ts +39 -10
- package/src/esm/VertTuple.js +49 -11
- package/src/esm/VertTuple.js.map +1 -1
- package/src/esm/Vertex.d.ts +18 -2
- package/src/esm/Vertex.js +22 -2
- package/src/esm/Vertex.js.map +1 -1
- package/src/esm/draw.d.ts +1 -0
- package/src/esm/draw.js +2 -1
- package/src/esm/draw.js.map +1 -1
- package/src/esm/drawutilssvg.js +24 -0
- package/src/esm/drawutilssvg.js.map +1 -1
- package/src/esm/geomutils.d.ts +32 -1
- package/src/esm/geomutils.js +47 -1
- package/src/esm/geomutils.js.map +1 -1
- package/src/esm/interfaces/core.d.ts +39 -0
- package/src/esm/interfaces/core.js +2 -0
- package/src/esm/interfaces/core.js.map +1 -1
- package/src/esm/utils/algorithms/PolygonInset.d.ts +184 -0
- package/src/esm/utils/algorithms/PolygonInset.js +424 -0
- package/src/esm/utils/algorithms/PolygonInset.js.map +1 -0
- package/src/esm/utils/algorithms/clearDuplicateVertices.d.ts +5 -4
- package/src/esm/utils/algorithms/clearDuplicateVertices.js +6 -3
- package/src/esm/utils/algorithms/clearDuplicateVertices.js.map +1 -1
- package/src/esm/utils/algorithms/convexPolygonIncircle.d.ts +2 -1
- package/src/esm/utils/algorithms/convexPolygonIncircle.js +15 -7
- package/src/esm/utils/algorithms/convexPolygonIncircle.js.map +1 -1
- package/src/esm/utils/algorithms/createRandomizedPolygon.d.ts +14 -0
- package/src/esm/utils/algorithms/createRandomizedPolygon.js +28 -0
- package/src/esm/utils/algorithms/createRandomizedPolygon.js.map +1 -0
- package/src/esm/utils/algorithms/findPolygonSelfIntersections.d.ts +2 -1
- package/src/esm/utils/algorithms/findPolygonSelfIntersections.js +3 -3
- package/src/esm/utils/algorithms/findPolygonSelfIntersections.js.map +1 -1
- package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.d.ts +3 -2
- package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js +11 -9
- package/src/esm/utils/algorithms/splitPolygonToNonIntersecting.js.map +1 -1
- package/src/esm/utils/createRandomizedPolygon.d.ts +14 -0
- package/src/esm/utils/createRandomizedPolygon.js +28 -0
- package/src/esm/utils/createRandomizedPolygon.js.map +1 -0
- package/src/esm/utils/detectDarkMode.js.map +1 -1
- package/src/esm/utils/dom/guiSizeToggler.d.ts +2 -1
- package/src/esm/utils/dom/guiSizeToggler.js +4 -2
- package/src/esm/utils/dom/guiSizeToggler.js.map +1 -1
- package/src/esm/utils/helpers/BezierPathInteractionHelper.d.ts +9 -7
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js +35 -22
- package/src/esm/utils/helpers/BezierPathInteractionHelper.js.map +1 -1
- package/src/esm/utils/helpers/CircleSectorHelper.d.ts +10 -1
- package/src/esm/utils/helpers/CircleSectorHelper.js +19 -20
- package/src/esm/utils/helpers/CircleSectorHelper.js.map +1 -1
- package/src/esm/utils/helpers/VEllipseHelper.d.ts +30 -0
- package/src/esm/utils/helpers/VEllipseHelper.js +81 -0
- package/src/esm/utils/helpers/VEllipseHelper.js.map +1 -0
- package/src/esm/utils/helpers/VEllipseSectorHelper.d.ts +42 -3
- package/src/esm/utils/helpers/VEllipseSectorHelper.js +106 -24
- package/src/esm/utils/helpers/VEllipseSectorHelper.js.map +1 -1
- package/src/ts/BezierPath.ts +58 -5
- package/src/ts/Bounds.ts +110 -6
- package/src/ts/Circle.ts +87 -5
- package/src/ts/CircleSector.ts +115 -5
- package/src/ts/CubicBezierCurve.ts +332 -42
- package/src/ts/Line.ts +66 -3
- package/src/ts/PlotBoilerplate.ts +10 -12
- package/src/ts/Polygon.ts +329 -27
- package/src/ts/Triangle.ts +101 -5
- package/src/ts/VEllipse.ts +214 -19
- package/src/ts/VEllipseSector.ts +154 -8
- package/src/ts/Vector.ts +16 -2
- package/src/ts/VertTuple.ts +53 -13
- package/src/ts/Vertex.ts +24 -3
- package/src/ts/draw.ts +2 -1
- package/src/ts/drawutilssvg.ts +29 -0
- package/src/ts/geomutils.ts +49 -1
- package/src/ts/interfaces/core.ts +42 -0
- package/src/ts/utils/algorithms/PolygonInset.ts +529 -0
- package/src/ts/utils/algorithms/clearDuplicateVertices.ts +11 -8
- package/src/ts/utils/algorithms/convexPolygonIncircle.ts +82 -78
- package/src/ts/utils/algorithms/findPolygonSelfIntersections.ts +25 -26
- package/src/ts/utils/algorithms/splitPolygonToNonIntersecting.ts +92 -99
- package/src/ts/utils/createRandomizedPolygon.ts +31 -0
- package/src/ts/utils/detectDarkMode.ts +1 -3
- package/src/ts/utils/dom/guiSizeToggler.ts +4 -2
- package/src/ts/utils/helpers/BezierPathInteractionHelper.ts +45 -29
- package/src/ts/utils/helpers/CircleSectorHelper.ts +115 -125
- package/src/ts/utils/helpers/VEllipseHelper.ts +113 -0
- package/src/ts/utils/helpers/VEllipseSectorHelper.ts +142 -25
package/src/cjs/Triangle.js
CHANGED
|
@@ -22,7 +22,13 @@
|
|
|
22
22
|
* @modified 2021-01-22 Always updating circumcircle when retieving it.
|
|
23
23
|
* @modified 2022-02-02 Added the `destroy` method.
|
|
24
24
|
* @modified 2022-02-02 Cleared the `Triangle.toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
25
|
-
* @
|
|
25
|
+
* @modified 2024-11-22 Added static utility function Triangle.utils.determinant; adapted method `determinant`.
|
|
26
|
+
* @modified 2024-11-22 Changing visibility of `Triangle.utils` from `private` to `public`.
|
|
27
|
+
* @modified 2025-14-16 Class `Triangle` now implements interface `Intersectable`.
|
|
28
|
+
* @modified 2025-14-16 Class `Triangle` now implements interface `IBounded`.
|
|
29
|
+
* @modified 2025-14-16 Class `Triangle` now implements interface `Intersectable`.
|
|
30
|
+
* @modified 2025-14-16 Added method `Triangle.move`.
|
|
31
|
+
* @version 2.10.0
|
|
26
32
|
*
|
|
27
33
|
* @file Triangle
|
|
28
34
|
* @fileoverview A simple triangle class: three vertices.
|
|
@@ -35,6 +41,7 @@ var Circle_1 = require("./Circle");
|
|
|
35
41
|
var Line_1 = require("./Line");
|
|
36
42
|
var Polygon_1 = require("./Polygon");
|
|
37
43
|
var UIDGenerator_1 = require("./UIDGenerator");
|
|
44
|
+
var Vector_1 = require("./Vector");
|
|
38
45
|
var Vertex_1 = require("./Vertex");
|
|
39
46
|
var geomutils_1 = require("./geomutils");
|
|
40
47
|
/**
|
|
@@ -136,6 +143,35 @@ var Triangle = /** @class */ (function () {
|
|
|
136
143
|
this.c.scale(factor, centroid);
|
|
137
144
|
return this;
|
|
138
145
|
};
|
|
146
|
+
//--- BEGIN --- Implement interface `IBounded`
|
|
147
|
+
/**
|
|
148
|
+
* Get the bounding box (bounds) of this Triangle.
|
|
149
|
+
*
|
|
150
|
+
* @method getBounds
|
|
151
|
+
* @instance
|
|
152
|
+
* @memberof Triangle
|
|
153
|
+
* @return {Bounds} The rectangular bounds of this Triangle.
|
|
154
|
+
**/
|
|
155
|
+
Triangle.prototype.getBounds = function () {
|
|
156
|
+
// return Bounds.computeFromVertices([this.a, this.b, this.c]);
|
|
157
|
+
return this.bounds();
|
|
158
|
+
};
|
|
159
|
+
//--- END --- Implement interface `IBounded`
|
|
160
|
+
/**
|
|
161
|
+
* Move the Triangle's vertices by the given amount.
|
|
162
|
+
*
|
|
163
|
+
* @method move
|
|
164
|
+
* @param {XYCoords} amount - The amount to move.
|
|
165
|
+
* @instance
|
|
166
|
+
* @memberof Triangle
|
|
167
|
+
* @return {Triangle} this for chaining
|
|
168
|
+
**/
|
|
169
|
+
Triangle.prototype.move = function (amount) {
|
|
170
|
+
this.a.add(amount);
|
|
171
|
+
this.b.add(amount);
|
|
172
|
+
this.c.add(amount);
|
|
173
|
+
return this;
|
|
174
|
+
};
|
|
139
175
|
/**
|
|
140
176
|
* Get the circumcircle of this triangle.
|
|
141
177
|
*
|
|
@@ -261,6 +297,51 @@ var Triangle = /** @class */ (function () {
|
|
|
261
297
|
Triangle.prototype.bounds = function () {
|
|
262
298
|
return new Bounds_1.Bounds(new Vertex_1.Vertex(Triangle.utils.min3(this.a.x, this.b.x, this.c.x), Triangle.utils.min3(this.a.y, this.b.y, this.c.y)), new Vertex_1.Vertex(Triangle.utils.max3(this.a.x, this.b.x, this.c.x), Triangle.utils.max3(this.a.y, this.b.y, this.c.y)));
|
|
263
299
|
};
|
|
300
|
+
//--- BEGIN --- Implement interface `Intersectable`
|
|
301
|
+
/**
|
|
302
|
+
* Get all line intersections with this polygon.
|
|
303
|
+
*
|
|
304
|
+
* This method returns all intersections (as vertices) with this shape. The returned array of vertices is in no specific order.
|
|
305
|
+
*
|
|
306
|
+
* See demo `47-closest-vector-projection-on-polygon` for how it works.
|
|
307
|
+
*
|
|
308
|
+
* @param {VertTuple} line - The line to find intersections with.
|
|
309
|
+
* @param {boolean} inVectorBoundsOnly - If set to true only intersecion points on the passed vector are returned (located strictly between start and end vertex).
|
|
310
|
+
* @returns {Array<Vertex>} - An array of all intersections within the polygon bounds.
|
|
311
|
+
*/
|
|
312
|
+
Triangle.prototype.lineIntersections = function (line, inVectorBoundsOnly) {
|
|
313
|
+
if (inVectorBoundsOnly === void 0) { inVectorBoundsOnly = false; }
|
|
314
|
+
// Find the intersections of all lines inside the edge bounds
|
|
315
|
+
return Polygon_1.Polygon.utils
|
|
316
|
+
.locateLineIntersecion(line, [this.a, this.b, this.c], false, inVectorBoundsOnly)
|
|
317
|
+
.map(function (intersectionTuple) { return intersectionTuple.intersectionPoint; });
|
|
318
|
+
};
|
|
319
|
+
/**
|
|
320
|
+
* Get all line intersections of this polygon and their tangents along the shape.
|
|
321
|
+
*
|
|
322
|
+
* This method returns all intersection tangents (as vectors) with this shape. The returned array of vectors is in no specific order.
|
|
323
|
+
*
|
|
324
|
+
* @param line
|
|
325
|
+
* @param inVectorBoundsOnly
|
|
326
|
+
* @returns
|
|
327
|
+
*/
|
|
328
|
+
Triangle.prototype.lineIntersectionTangents = function (line, inVectorBoundsOnly) {
|
|
329
|
+
var _this = this;
|
|
330
|
+
if (inVectorBoundsOnly === void 0) { inVectorBoundsOnly = false; }
|
|
331
|
+
// Find the intersection tangents of all lines inside the edge bounds
|
|
332
|
+
return Polygon_1.Polygon.utils
|
|
333
|
+
.locateLineIntersecion(line, [this.a, this.b, this.c], false, inVectorBoundsOnly)
|
|
334
|
+
.map(function (intersectionTuple) {
|
|
335
|
+
// const polyLine = this.getEdgeAt(intersectionTuple.edgeIndex);
|
|
336
|
+
var polyLine = _this.getEdgeAt(intersectionTuple.edgeIndex);
|
|
337
|
+
return new Vector_1.Vector(polyLine.a.clone(), polyLine.b.clone()).moveTo(intersectionTuple.intersectionPoint);
|
|
338
|
+
});
|
|
339
|
+
};
|
|
340
|
+
//--- END --- Implement interface `Intersectable`
|
|
341
|
+
Triangle.prototype.getEdgeAt = function (edgeIndex) {
|
|
342
|
+
var modIndex = edgeIndex % 3;
|
|
343
|
+
return modIndex === 0 ? new Line_1.Line(this.a, this.b) : modIndex === 1 ? new Line_1.Line(this.b, this.c) : new Line_1.Line(this.c, this.a);
|
|
344
|
+
};
|
|
264
345
|
/**
|
|
265
346
|
* Convert this triangle to a polygon instance.
|
|
266
347
|
*
|
|
@@ -284,7 +365,8 @@ var Triangle = /** @class */ (function () {
|
|
|
284
365
|
*/
|
|
285
366
|
Triangle.prototype.determinant = function () {
|
|
286
367
|
// (b.y - a.y)*(c.x - b.x) - (c.y - b.y)*(b.x - a.x);
|
|
287
|
-
return (this.b.y - this.a.y) * (this.c.x - this.b.x) - (this.c.y - this.b.y) * (this.b.x - this.a.x);
|
|
368
|
+
// return (this.b.y - this.a.y) * (this.c.x - this.b.x) - (this.c.y - this.b.y) * (this.b.x - this.a.x);
|
|
369
|
+
return Triangle.utils.determinant(this.a, this.b, this.c);
|
|
288
370
|
};
|
|
289
371
|
/**
|
|
290
372
|
* Checks if the passed vertex (p) is inside this triangle.
|
|
@@ -397,6 +479,16 @@ var Triangle = /** @class */ (function () {
|
|
|
397
479
|
var s = (1 / (2 * area)) * (p0y * p2x - p0x * p2y + (p2y - p0y) * px + (p0x - p2x) * py);
|
|
398
480
|
var t = (1 / (2 * area)) * (p0x * p1y - p0y * p1x + (p0y - p1y) * px + (p1x - p0x) * py);
|
|
399
481
|
return s > 0 && t > 0 && 1 - s - t > 0;
|
|
482
|
+
},
|
|
483
|
+
/**
|
|
484
|
+
* Calculate the determinant of the three vertices a, b and c (in this order).
|
|
485
|
+
* @param {XYCords} a - The first vertex.
|
|
486
|
+
* @param {XYCords} b - The first vertex.
|
|
487
|
+
* @param {XYCords} c - The first vertex.
|
|
488
|
+
* @returns {nmber}
|
|
489
|
+
*/
|
|
490
|
+
determinant: function (a, b, c) {
|
|
491
|
+
return (b.y - a.y) * (c.x - b.x) - (c.y - b.y) * (b.x - a.x);
|
|
400
492
|
}
|
|
401
493
|
};
|
|
402
494
|
return Triangle;
|
package/src/cjs/Triangle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Triangle.js","sourceRoot":"","sources":["../ts/Triangle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Triangle.js","sourceRoot":"","sources":["../ts/Triangle.ts"],"names":[],"mappings":"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"}
|
package/src/cjs/VEllipse.d.ts
CHANGED
|
@@ -15,15 +15,21 @@
|
|
|
15
15
|
* @modified 2021-03-19 Added the `VEllipse.rotate` function.
|
|
16
16
|
* @modified 2022-02-02 Added the `destroy` method.
|
|
17
17
|
* @modified 2022-02-02 Cleared the `VEllipse.toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
18
|
-
* @
|
|
18
|
+
* @modified 2025-03-31 ATTENTION: modified the winding direction of the `tangentAt` method to match with the Circle method. This is a breaking change!
|
|
19
|
+
* @modified 2025-03-31 Adding the `VEllipse.move(amount: XYCoords)` method.
|
|
20
|
+
* @modified 2025-04-19 Adding the `VEllipse.getBounds()` method.
|
|
21
|
+
* @modified 2025-04-24 Adding the `VEllipse.getExtremePoints()` method for calculating minima and maxima.
|
|
22
|
+
* @version 1.4.0
|
|
19
23
|
*
|
|
20
24
|
* @file VEllipse
|
|
21
25
|
* @fileoverview Ellipses with a center and an x- and a y-axis (stored as a vertex).
|
|
22
26
|
**/
|
|
23
27
|
import { Vector } from "./Vector";
|
|
24
28
|
import { Vertex } from "./Vertex";
|
|
25
|
-
import { SVGSerializable, UID, XYCoords } from "./interfaces";
|
|
29
|
+
import { IBounded, Intersectable, SVGSerializable, UID, XYCoords } from "./interfaces";
|
|
26
30
|
import { CubicBezierCurve } from "./CubicBezierCurve";
|
|
31
|
+
import { VertTuple } from "./VertTuple";
|
|
32
|
+
import { Bounds } from "./Bounds";
|
|
27
33
|
/**
|
|
28
34
|
* @classdesc An ellipse class based on two vertices [centerX,centerY] and [radiusX,radiusY].
|
|
29
35
|
*
|
|
@@ -32,7 +38,7 @@ import { CubicBezierCurve } from "./CubicBezierCurve";
|
|
|
32
38
|
* @requires UIDGenerator
|
|
33
39
|
* @requires Vertex
|
|
34
40
|
*/
|
|
35
|
-
export declare class VEllipse implements SVGSerializable {
|
|
41
|
+
export declare class VEllipse implements IBounded, Intersectable, SVGSerializable {
|
|
36
42
|
/**
|
|
37
43
|
* Required to generate proper CSS classes and other class related IDs.
|
|
38
44
|
**/
|
|
@@ -123,6 +129,37 @@ export declare class VEllipse implements SVGSerializable {
|
|
|
123
129
|
* @return {number} The signed vertical radius of this ellipse.
|
|
124
130
|
*/
|
|
125
131
|
signedRadiusV(): number;
|
|
132
|
+
/**
|
|
133
|
+
* Get the the minima and maxima (points) of this (rotated) ellipse.
|
|
134
|
+
*
|
|
135
|
+
* @method getExtremePoints
|
|
136
|
+
* @instance
|
|
137
|
+
* @memberof VEllipse
|
|
138
|
+
* @return {[Vertex, Vertex, Vertex, Vertex]} Get the the minima and maxima (points) of this (rotated) ellipse.
|
|
139
|
+
*/
|
|
140
|
+
getExtremePoints(): [Vertex, Vertex, Vertex, Vertex];
|
|
141
|
+
/**
|
|
142
|
+
* Get the bounds of this ellipse.
|
|
143
|
+
*
|
|
144
|
+
* The bounds are approximated by the underlying segment buffer; the more segment there are,
|
|
145
|
+
* the more accurate will be the returned bounds.
|
|
146
|
+
*
|
|
147
|
+
* @method getBounds
|
|
148
|
+
* @instance
|
|
149
|
+
* @memberof VEllipse
|
|
150
|
+
* @return {Bounds} The bounds of this ellipse.
|
|
151
|
+
**/
|
|
152
|
+
getBounds(): Bounds;
|
|
153
|
+
/**
|
|
154
|
+
* Move the ellipse by the given amount. This is equivalent by moving the `center` and `axis` points.
|
|
155
|
+
*
|
|
156
|
+
* @method move
|
|
157
|
+
* @param {XYCoords} amount - The amount to move.
|
|
158
|
+
* @instance
|
|
159
|
+
* @memberof VEllipse
|
|
160
|
+
* @return {VEllipse} this for chaining
|
|
161
|
+
**/
|
|
162
|
+
move(amount: XYCoords): VEllipse;
|
|
126
163
|
/**
|
|
127
164
|
* Scale this ellipse by the given factor from the center point. The factor will be applied to both radii.
|
|
128
165
|
*
|
|
@@ -204,10 +241,32 @@ export declare class VEllipse implements SVGSerializable {
|
|
|
204
241
|
/**
|
|
205
242
|
* Get equally distributed points on the outline of this ellipse.
|
|
206
243
|
*
|
|
244
|
+
* @method getEquidistantVertices
|
|
245
|
+
* @instance
|
|
207
246
|
* @param {number} pointCount - The number of points.
|
|
208
247
|
* @returns {Array<Vertex>}
|
|
209
248
|
*/
|
|
210
249
|
getEquidistantVertices(pointCount: number): Array<Vertex>;
|
|
250
|
+
/**
|
|
251
|
+
* Get the line intersections as vectors with this ellipse.
|
|
252
|
+
*
|
|
253
|
+
* @method lineIntersections
|
|
254
|
+
* @instance
|
|
255
|
+
* @param {VertTuple<Vector> ray - The line/ray to intersect this ellipse with.
|
|
256
|
+
* @param {boolean} inVectorBoundsOnly - (default=false) Set to true if only intersections within the vector bounds are of interest.
|
|
257
|
+
* @returns
|
|
258
|
+
*/
|
|
259
|
+
lineIntersections(ray: VertTuple<Vector>, inVectorBoundsOnly?: boolean): Array<Vertex>;
|
|
260
|
+
/**
|
|
261
|
+
* Get all line intersections of this polygon and their tangents along the shape.
|
|
262
|
+
*
|
|
263
|
+
* This method returns all intersection tangents (as vectors) with this shape. The returned array of vectors is in no specific order.
|
|
264
|
+
*
|
|
265
|
+
* @param line
|
|
266
|
+
* @param lineIntersectionTangents
|
|
267
|
+
* @returns
|
|
268
|
+
*/
|
|
269
|
+
lineIntersectionTangents(line: VertTuple<any>, inVectorBoundsOnly?: boolean): Array<Vector>;
|
|
211
270
|
/**
|
|
212
271
|
* Convert this ellipse into cubic Bézier curves.
|
|
213
272
|
*
|
package/src/cjs/VEllipse.js
CHANGED
|
@@ -16,7 +16,11 @@
|
|
|
16
16
|
* @modified 2021-03-19 Added the `VEllipse.rotate` function.
|
|
17
17
|
* @modified 2022-02-02 Added the `destroy` method.
|
|
18
18
|
* @modified 2022-02-02 Cleared the `VEllipse.toSVGString` function (deprecated). Use `drawutilssvg` instead.
|
|
19
|
-
* @
|
|
19
|
+
* @modified 2025-03-31 ATTENTION: modified the winding direction of the `tangentAt` method to match with the Circle method. This is a breaking change!
|
|
20
|
+
* @modified 2025-03-31 Adding the `VEllipse.move(amount: XYCoords)` method.
|
|
21
|
+
* @modified 2025-04-19 Adding the `VEllipse.getBounds()` method.
|
|
22
|
+
* @modified 2025-04-24 Adding the `VEllipse.getExtremePoints()` method for calculating minima and maxima.
|
|
23
|
+
* @version 1.4.0
|
|
20
24
|
*
|
|
21
25
|
* @file VEllipse
|
|
22
26
|
* @fileoverview Ellipses with a center and an x- and a y-axis (stored as a vertex).
|
|
@@ -28,6 +32,8 @@ var Vector_1 = require("./Vector");
|
|
|
28
32
|
var Vertex_1 = require("./Vertex");
|
|
29
33
|
var UIDGenerator_1 = require("./UIDGenerator");
|
|
30
34
|
var CubicBezierCurve_1 = require("./CubicBezierCurve");
|
|
35
|
+
var Circle_1 = require("./Circle");
|
|
36
|
+
var Bounds_1 = require("./Bounds");
|
|
31
37
|
/**
|
|
32
38
|
* @classdesc An ellipse class based on two vertices [centerX,centerY] and [radiusX,radiusY].
|
|
33
39
|
*
|
|
@@ -109,11 +115,96 @@ var VEllipse = /** @class */ (function () {
|
|
|
109
115
|
* @return {number} The signed vertical radius of this ellipse.
|
|
110
116
|
*/
|
|
111
117
|
VEllipse.prototype.signedRadiusV = function () {
|
|
112
|
-
// return Math.abs(this.axis.y - this.center.y);
|
|
113
118
|
// Rotate axis back to origin before calculating radius
|
|
114
|
-
// return Math.abs(new Vertex(this.axis).rotate(-this.rotation,this.center).y - this.center.y);
|
|
115
119
|
return new Vertex_1.Vertex(this.axis).rotate(-this.rotation, this.center).y - this.center.y;
|
|
116
120
|
};
|
|
121
|
+
/**
|
|
122
|
+
* Get the the minima and maxima (points) of this (rotated) ellipse.
|
|
123
|
+
*
|
|
124
|
+
* @method getExtremePoints
|
|
125
|
+
* @instance
|
|
126
|
+
* @memberof VEllipse
|
|
127
|
+
* @return {[Vertex, Vertex, Vertex, Vertex]} Get the the minima and maxima (points) of this (rotated) ellipse.
|
|
128
|
+
*/
|
|
129
|
+
VEllipse.prototype.getExtremePoints = function () {
|
|
130
|
+
var a = this.radiusH();
|
|
131
|
+
var b = this.radiusV();
|
|
132
|
+
// Calculate t_x values
|
|
133
|
+
var t_x1 = Math.atan2(-b * Math.sin(this.rotation), a * Math.cos(this.rotation));
|
|
134
|
+
var t_x2 = t_x1 + Math.PI;
|
|
135
|
+
// Calculate x values at t_x
|
|
136
|
+
var x_x1 = this.center.x + a * Math.cos(t_x1) * Math.cos(this.rotation) - b * Math.sin(t_x1) * Math.sin(this.rotation);
|
|
137
|
+
var y_x1 = this.center.y + a * Math.cos(t_x1) * Math.sin(this.rotation) + b * Math.sin(t_x1) * Math.cos(this.rotation);
|
|
138
|
+
var x_x2 = this.center.x + a * Math.cos(t_x2) * Math.cos(this.rotation) - b * Math.sin(t_x2) * Math.sin(this.rotation);
|
|
139
|
+
var y_x2 = this.center.y + a * Math.cos(t_x2) * Math.sin(this.rotation) + b * Math.sin(t_x2) * Math.cos(this.rotation);
|
|
140
|
+
var x_max, x_min;
|
|
141
|
+
if (x_x1 > x_x2) {
|
|
142
|
+
x_max = new Vertex_1.Vertex(x_x1, y_x1);
|
|
143
|
+
x_min = new Vertex_1.Vertex(x_x2, y_x2);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
x_max = new Vertex_1.Vertex(x_x2, y_x2);
|
|
147
|
+
x_min = new Vertex_1.Vertex(x_x1, y_x1);
|
|
148
|
+
}
|
|
149
|
+
// Calculate t_y values
|
|
150
|
+
var t_y1 = Math.atan2(b * Math.cos(this.rotation), a * Math.sin(this.rotation));
|
|
151
|
+
var t_y2 = t_y1 + Math.PI;
|
|
152
|
+
// Calculate y values at t_y
|
|
153
|
+
var x_y1 = this.center.x + a * Math.cos(t_y1) * Math.cos(this.rotation) - b * Math.sin(t_y1) * Math.sin(this.rotation);
|
|
154
|
+
var y_y1 = this.center.y + a * Math.cos(t_y1) * Math.sin(this.rotation) + b * Math.sin(t_y1) * Math.cos(this.rotation);
|
|
155
|
+
var x_y2 = this.center.x + a * Math.cos(t_y2) * Math.cos(this.rotation) - b * Math.sin(t_y2) * Math.sin(this.rotation);
|
|
156
|
+
var y_y2 = this.center.y + a * Math.cos(t_y2) * Math.sin(this.rotation) + b * Math.sin(t_y2) * Math.cos(this.rotation);
|
|
157
|
+
var y_max, y_min;
|
|
158
|
+
if (y_y1 > y_y2) {
|
|
159
|
+
y_max = new Vertex_1.Vertex(x_y1, y_y1);
|
|
160
|
+
y_min = new Vertex_1.Vertex(x_y2, y_y2);
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
y_max = new Vertex_1.Vertex(x_y2, y_y2);
|
|
164
|
+
y_min = new Vertex_1.Vertex(x_y1, y_y1);
|
|
165
|
+
}
|
|
166
|
+
return [x_max, x_min, y_max, y_min];
|
|
167
|
+
};
|
|
168
|
+
//--- BEGIN --- Implement interface `IBounded`
|
|
169
|
+
/**
|
|
170
|
+
* Get the bounds of this ellipse.
|
|
171
|
+
*
|
|
172
|
+
* The bounds are approximated by the underlying segment buffer; the more segment there are,
|
|
173
|
+
* the more accurate will be the returned bounds.
|
|
174
|
+
*
|
|
175
|
+
* @method getBounds
|
|
176
|
+
* @instance
|
|
177
|
+
* @memberof VEllipse
|
|
178
|
+
* @return {Bounds} The bounds of this ellipse.
|
|
179
|
+
**/
|
|
180
|
+
VEllipse.prototype.getBounds = function () {
|
|
181
|
+
// Thanks to Cuixiping
|
|
182
|
+
// https://stackoverflow.com/questions/87734/how-do-you-calculate-the-axis-aligned-bounding-box-of-an-ellipse
|
|
183
|
+
var r1 = this.radiusH();
|
|
184
|
+
var r2 = this.radiusV();
|
|
185
|
+
var ux = r1 * Math.cos(this.rotation);
|
|
186
|
+
var uy = r1 * Math.sin(this.rotation);
|
|
187
|
+
var vx = r2 * Math.cos(this.rotation + Math.PI / 2);
|
|
188
|
+
var vy = r2 * Math.sin(this.rotation + Math.PI / 2);
|
|
189
|
+
var bbox_halfwidth = Math.sqrt(ux * ux + vx * vx);
|
|
190
|
+
var bbox_halfheight = Math.sqrt(uy * uy + vy * vy);
|
|
191
|
+
return new Bounds_1.Bounds({ x: this.center.x - bbox_halfwidth, y: this.center.y - bbox_halfheight }, { x: this.center.x + bbox_halfwidth, y: this.center.y + bbox_halfheight });
|
|
192
|
+
};
|
|
193
|
+
//--- BEGIN --- Implement interface `IBounded`
|
|
194
|
+
/**
|
|
195
|
+
* Move the ellipse by the given amount. This is equivalent by moving the `center` and `axis` points.
|
|
196
|
+
*
|
|
197
|
+
* @method move
|
|
198
|
+
* @param {XYCoords} amount - The amount to move.
|
|
199
|
+
* @instance
|
|
200
|
+
* @memberof VEllipse
|
|
201
|
+
* @return {VEllipse} this for chaining
|
|
202
|
+
**/
|
|
203
|
+
VEllipse.prototype.move = function (amount) {
|
|
204
|
+
this.center.add(amount);
|
|
205
|
+
this.axis.add(amount);
|
|
206
|
+
return this;
|
|
207
|
+
};
|
|
117
208
|
/**
|
|
118
209
|
* Scale this ellipse by the given factor from the center point. The factor will be applied to both radii.
|
|
119
210
|
*
|
|
@@ -171,7 +262,7 @@ var VEllipse = /** @class */ (function () {
|
|
|
171
262
|
* @param {number=1.0} length - [optional, default=1] The length of the returned vector.
|
|
172
263
|
*/
|
|
173
264
|
VEllipse.prototype.normalAt = function (angle, length) {
|
|
174
|
-
var point = this.vertAt(angle);
|
|
265
|
+
var point = this.vertAt(angle - this.rotation); // HERE IS THE CORRECT BEHAVIOR!
|
|
175
266
|
var foci = this.getFoci();
|
|
176
267
|
// Calculate the angle between [point,focusA] and [point,focusB]
|
|
177
268
|
var angleA = new Line_1.Line(point, foci[0]).angle();
|
|
@@ -183,12 +274,13 @@ var VEllipse = /** @class */ (function () {
|
|
|
183
274
|
.addX(50)
|
|
184
275
|
.clone()
|
|
185
276
|
.rotate(Math.PI + centerAngle, point);
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
277
|
+
var resultVector = this.center.distance(endPointA) < this.center.distance(endPointB)
|
|
278
|
+
? new Vector_1.Vector(point, endPointB)
|
|
279
|
+
: new Vector_1.Vector(point, endPointA);
|
|
280
|
+
if (typeof length === "number") {
|
|
281
|
+
resultVector.setLength(length);
|
|
191
282
|
}
|
|
283
|
+
return resultVector;
|
|
192
284
|
};
|
|
193
285
|
/**
|
|
194
286
|
* Get the tangent vector at the given angle.
|
|
@@ -207,9 +299,7 @@ var VEllipse = /** @class */ (function () {
|
|
|
207
299
|
*/
|
|
208
300
|
VEllipse.prototype.tangentAt = function (angle, length) {
|
|
209
301
|
var normal = this.normalAt(angle, length);
|
|
210
|
-
|
|
211
|
-
normal.b.rotate(Math.PI / 2, normal.a);
|
|
212
|
-
return normal;
|
|
302
|
+
return normal.inv().perp();
|
|
213
303
|
};
|
|
214
304
|
/**
|
|
215
305
|
* Get the perimeter of this ellipse.
|
|
@@ -260,6 +350,8 @@ var VEllipse = /** @class */ (function () {
|
|
|
260
350
|
/**
|
|
261
351
|
* Get equally distributed points on the outline of this ellipse.
|
|
262
352
|
*
|
|
353
|
+
* @method getEquidistantVertices
|
|
354
|
+
* @instance
|
|
263
355
|
* @param {number} pointCount - The number of points.
|
|
264
356
|
* @returns {Array<Vertex>}
|
|
265
357
|
*/
|
|
@@ -271,6 +363,78 @@ var VEllipse = /** @class */ (function () {
|
|
|
271
363
|
}
|
|
272
364
|
return result;
|
|
273
365
|
};
|
|
366
|
+
//--- BEGIN --- Implement interface `Intersectable`
|
|
367
|
+
/**
|
|
368
|
+
* Get the line intersections as vectors with this ellipse.
|
|
369
|
+
*
|
|
370
|
+
* @method lineIntersections
|
|
371
|
+
* @instance
|
|
372
|
+
* @param {VertTuple<Vector> ray - The line/ray to intersect this ellipse with.
|
|
373
|
+
* @param {boolean} inVectorBoundsOnly - (default=false) Set to true if only intersections within the vector bounds are of interest.
|
|
374
|
+
* @returns
|
|
375
|
+
*/
|
|
376
|
+
VEllipse.prototype.lineIntersections = function (ray, inVectorBoundsOnly) {
|
|
377
|
+
// Question: what happens to extreme versions when ellipse is a line (width or height is zero)?
|
|
378
|
+
// This would result in a Division_by_Zero exception!
|
|
379
|
+
if (inVectorBoundsOnly === void 0) { inVectorBoundsOnly = false; }
|
|
380
|
+
// Step A: create clones for operations (keep originals unchanged)
|
|
381
|
+
var ellipseCopy = this.clone(); // VEllipse
|
|
382
|
+
var rayCopy = ray.clone(); // Vector
|
|
383
|
+
// Step B: move both so ellipse's center is located at (0,0)
|
|
384
|
+
var moveAmount = ellipseCopy.center.clone().inv();
|
|
385
|
+
ellipseCopy.move(moveAmount);
|
|
386
|
+
rayCopy.add(moveAmount);
|
|
387
|
+
// Step C: rotate eclipse backwards it's rotation, so that rotation is zero (0.0).
|
|
388
|
+
// Rotate together with ray!
|
|
389
|
+
var rotationAmount = -ellipseCopy.rotation;
|
|
390
|
+
ellipseCopy.rotate(rotationAmount); // Rotation around (0,0) = center of translated ellipse
|
|
391
|
+
rayCopy.a.rotate(rotationAmount, ellipseCopy.center);
|
|
392
|
+
rayCopy.b.rotate(rotationAmount, ellipseCopy.center);
|
|
393
|
+
// Step D: find x/y factors to use for scaling to transform the ellipse to a circle.
|
|
394
|
+
// Scale together with vector ray.
|
|
395
|
+
var radiusH = ellipseCopy.radiusH();
|
|
396
|
+
var radiusV = ellipseCopy.radiusV();
|
|
397
|
+
var scalingFactors = radiusH > radiusV ? { x: radiusV / radiusH, y: 1.0 } : { x: 1.0, y: radiusH / radiusV };
|
|
398
|
+
// Step E: scale ellipse AND ray by calculated factors.
|
|
399
|
+
ellipseCopy.axis.scaleXY(scalingFactors);
|
|
400
|
+
rayCopy.a.scaleXY(scalingFactors);
|
|
401
|
+
rayCopy.b.scaleXY(scalingFactors);
|
|
402
|
+
// Intermediate result: now the ellipse is transformed to a circle and we can calculate intersections :)
|
|
403
|
+
// Step F: calculate circle+line intersecions
|
|
404
|
+
var tmpCircle = new Circle_1.Circle(new Vertex_1.Vertex(), ellipseCopy.radiusH()); // radiusH() === radiusV()
|
|
405
|
+
var intersections = tmpCircle.lineIntersections(rayCopy, inVectorBoundsOnly);
|
|
406
|
+
// Step G: transform intersecions back to original configuration
|
|
407
|
+
intersections.forEach(function (intersectionPoint) {
|
|
408
|
+
// Reverse transformation from above.
|
|
409
|
+
intersectionPoint.scaleXY({ x: 1 / scalingFactors.x, y: 1 / scalingFactors.y }, ellipseCopy.center);
|
|
410
|
+
intersectionPoint.rotate(-rotationAmount, ellipseCopy.center);
|
|
411
|
+
intersectionPoint.sub(moveAmount);
|
|
412
|
+
});
|
|
413
|
+
return intersections;
|
|
414
|
+
};
|
|
415
|
+
/**
|
|
416
|
+
* Get all line intersections of this polygon and their tangents along the shape.
|
|
417
|
+
*
|
|
418
|
+
* This method returns all intersection tangents (as vectors) with this shape. The returned array of vectors is in no specific order.
|
|
419
|
+
*
|
|
420
|
+
* @param line
|
|
421
|
+
* @param lineIntersectionTangents
|
|
422
|
+
* @returns
|
|
423
|
+
*/
|
|
424
|
+
VEllipse.prototype.lineIntersectionTangents = function (line, inVectorBoundsOnly) {
|
|
425
|
+
var _this = this;
|
|
426
|
+
if (inVectorBoundsOnly === void 0) { inVectorBoundsOnly = false; }
|
|
427
|
+
// Find the intersections of all lines plus their tangents inside the circle bounds
|
|
428
|
+
var interSectionPoints = this.lineIntersections(line, inVectorBoundsOnly);
|
|
429
|
+
return interSectionPoints.map(function (vert) {
|
|
430
|
+
// Calculate angle
|
|
431
|
+
var lineFromCenter = new Line_1.Line(_this.center, vert);
|
|
432
|
+
var angle = lineFromCenter.angle();
|
|
433
|
+
// Calculate tangent at angle
|
|
434
|
+
return _this.tangentAt(angle);
|
|
435
|
+
});
|
|
436
|
+
};
|
|
437
|
+
//--- END --- Implement interface `Intersectable`
|
|
274
438
|
/**
|
|
275
439
|
* Convert this ellipse into cubic Bézier curves.
|
|
276
440
|
*
|
|
@@ -283,7 +447,7 @@ var VEllipse = /** @class */ (function () {
|
|
|
283
447
|
// Math by Luc Maisonobe
|
|
284
448
|
// http://www.spaceroots.org/documents/ellipse/node22.html
|
|
285
449
|
// Note that ellipses with radiusH=0 or radiusV=0 cannot be represented as Bézier curves.
|
|
286
|
-
// Return a single line here (as a Bézier curve)
|
|
450
|
+
// Return a single line here (as a Bézier curve)?
|
|
287
451
|
// if (Math.abs(this.radiusV()) < 0.00001) {
|
|
288
452
|
// const radiusH = this.radiusH();
|
|
289
453
|
// return [
|
|
@@ -313,10 +477,10 @@ var VEllipse = /** @class */ (function () {
|
|
|
313
477
|
var radiusV = this.radiusV();
|
|
314
478
|
var curves = [];
|
|
315
479
|
var angles = VEllipse.utils.equidistantVertAngles(radiusH, radiusV, segmentCount);
|
|
316
|
-
var curAngle = angles[0];
|
|
480
|
+
var curAngle = angles[0] + this.rotation;
|
|
317
481
|
var startPoint = this.vertAt(curAngle);
|
|
318
482
|
for (var i = 0; i < angles.length; i++) {
|
|
319
|
-
var nextAngle = angles[(i + 1) % angles.length];
|
|
483
|
+
var nextAngle = angles[(i + 1) % angles.length] + this.rotation;
|
|
320
484
|
var endPoint = this.vertAt(nextAngle);
|
|
321
485
|
if (Math.abs(radiusV) < 0.0001 || Math.abs(radiusH) < 0.0001) {
|
|
322
486
|
// Distorted ellipses can only be approximated by linear Bézier segments
|
|
@@ -325,8 +489,8 @@ var VEllipse = /** @class */ (function () {
|
|
|
325
489
|
curves.push(curve);
|
|
326
490
|
}
|
|
327
491
|
else {
|
|
328
|
-
var startTangent = this.tangentAt(curAngle);
|
|
329
|
-
var endTangent = this.tangentAt(nextAngle);
|
|
492
|
+
var startTangent = this.tangentAt(curAngle + this.rotation);
|
|
493
|
+
var endTangent = this.tangentAt(nextAngle + this.rotation);
|
|
330
494
|
// Find intersection (ignore that the result might be null in some extreme cases)
|
|
331
495
|
var intersection = startTangent.intersection(endTangent);
|
|
332
496
|
// What if intersection is undefined?
|
package/src/cjs/VEllipse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VEllipse.js","sourceRoot":"","sources":["../ts/VEllipse.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;IAqBI;;;AAEJ,+BAA8B;AAC9B,mCAAkC;AAClC,mCAAkC;AAClC,+CAA8C;AAE9C,uDAAsD;AAEtD;;;;;;;GAOG;AACH;IA6CE;;;;;;;;QAQI;IACJ,kBAAY,MAAc,EAAE,IAAY,EAAE,QAAiB;QArD3D;;YAEI;QACK,cAAS,GAAW,UAAU,CAAC;QAmDtC,IAAI,CAAC,GAAG,GAAG,2BAAY,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,GAAG,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,wBAAK,GAAL;QACE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;OAOG;IACH,0BAAO,GAAP;QACE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,gCAAa,GAAb;QACE,gDAAgD;QAChD,uDAAuD;QACvD,+FAA+F;QAC/F,OAAO,IAAI,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;;OAOG;IACH,0BAAO,GAAP;QACE,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;OAOG;IACH,gCAAa,GAAb;QACE,gDAAgD;QAChD,uDAAuD;QACvD,+FAA+F;QAC/F,OAAO,IAAI,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,CAAC;IAED;;;;;;;;OAQG;IACH,wBAAK,GAAL,UAAM,MAAc;QAClB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,yBAAM,GAAN,UAAO,KAAa;QAClB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;OAQG;IACH,yBAAM,GAAN,UAAO,KAAa;QAClB,0DAA0D;QAC1D,4GAA4G;QAC5G,IAAM,CAAC,GAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,IAAM,CAAC,GAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,eAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAClG,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IAEH,2BAAQ,GAAR,UAAS,KAAa,EAAE,MAAe;QACrC,IAAM,KAAK,GAAW,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,IAAM,IAAI,GAAqB,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9C,gEAAgE;QAChE,IAAM,MAAM,GAAW,IAAI,WAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,IAAM,MAAM,GAAW,IAAI,WAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QACxD,IAAM,WAAW,GAAW,MAAM,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,GAAG,CAAC;QAC7D,IAAM,SAAS,GAAW,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACpF,IAAM,SAAS,GAAW,KAAK;aAC5B,KAAK,EAAE;aACP,IAAI,CAAC,EAAE,CAAC;aACR,KAAK,EAAE;aACP,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACtE,OAAO,IAAI,eAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,eAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,4BAAS,GAAT,UAAU,KAAa,EAAE,MAAe;QACtC,IAAM,MAAM,GAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpD,2DAA2D;QAC3D,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,4BAAS,GAAT;QACE,8FAA8F;QAC9F,iEAAiE;QACjE,0CAA0C;QAC1C,iDAAiD;QACjD,IAAM,CAAC,GAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,IAAM,CAAC,GAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;OAOG;IACH,0BAAO,GAAP;QACE,+CAA+C;QAC/C,IAAM,EAAE,GAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAM,EAAE,GAAW,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAM,KAAK,GAAW,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACxC,gDAAgD;QAChD,IAAM,CAAC,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7C,wBAAwB;QACxB,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,OAAO;gBACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;aAChE,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;gBACL,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;gBAC9D,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,yCAAsB,GAAtB,UAAuB,UAAkB;QACvC,IAAM,MAAM,GAAkB,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;QAC/G,IAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACH,gCAAa,GAAb,UAAc,mBAA4B,EAAE,SAAkB;QAC5D,wBAAwB;QACxB,6DAA6D;QAE7D,yFAAyF;QACzF,gDAAgD;QAChD,4CAA4C;QAC5C,oCAAoC;QACpC,aAAa;QACb,4BAA4B;QAC5B,2CAA2C;QAC3C,4CAA4C;QAC5C,6BAA6B;QAC7B,4BAA4B;QAC5B,QAAQ;QACR,6CAA6C;QAC7C,IAAI;QACJ,4CAA4C;QAC5C,oCAAoC;QACpC,aAAa;QACb,4BAA4B;QAC5B,2CAA2C;QAC3C,4CAA4C;QAC5C,6BAA6B;QAC7B,4BAA4B;QAC5B,QAAQ;QACR,2CAA2C;QAC3C,IAAI;QAEJ,+CAA+C;QAC/C,IAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,mBAAmB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/D,SAAS,GAAG,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QACpE,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAE/B,IAAM,MAAM,GAA4B,EAAE,CAAC;QAC3C,IAAM,MAAM,GAAkB,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QACnG,IAAI,QAAQ,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,UAAU,GAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,QAAQ,GAAW,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAE9C,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,MAAM,EAAE,CAAC;gBAC7D,wEAAwE;gBACxE,IAAI,IAAI,GAAa,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAI,KAAK,GAAqB,IAAI,mCAAgB,CAChD,UAAU,CAAC,KAAK,EAAE,EAClB,QAAQ,CAAC,KAAK,EAAE,EAChB,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,EACxD,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CACzD,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,YAAY,GAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACpD,IAAI,UAAU,GAAW,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;gBAEnD,iFAAiF;gBACjF,IAAI,YAAY,GAAW,YAAY,CAAC,YAAY,CAAC,UAAU,CAAW,CAAC;gBAC3E,qCAAqC;gBACrC,kGAAkG;gBAElG,IAAI,SAAS,GAAW,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBAC5D,IAAI,OAAO,GAAW,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;gBACxD,IAAI,KAAK,GAAqB,IAAI,mCAAgB,CAChD,UAAU,CAAC,KAAK,EAAE,EAClB,QAAQ,CAAC,KAAK,EAAE,EAChB,UAAU,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAClD,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAC/C,CAAC;gBACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,UAAU,GAAG,QAAQ,CAAC;YACtB,QAAQ,GAAG,SAAS,CAAC;QACvB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,0BAAO,GAAP;QACE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACI,cAAK,GAAG;QACb;;;;;;;;;;WAUG;QACH,gBAAgB,EAAE,UAAC,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,OAAe,EAAE,KAAa;YAClG,0DAA0D;YAC1D,4GAA4G;YAC5G,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;YACtC,OAAO;gBACL,CAAC,EAAE,OAAO,GAAG,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBACrG,CAAC,EAAE,OAAO,GAAG,CAAC,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aACtG,CAAC;QACJ,CAAC;QAED;;;;;;;WAOG;QACH,UAAU,EAAE,UAAC,OAAe,EAAE,OAAe,EAAE,GAAW;YACxD,4GAA4G;YAC5G,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3B,IAAI,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;YAC9B,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;YAC3G,OAAO,KAAK,CAAC;QACf,CAAC;QAED;;;;;WAKG;QACH,qBAAqB,EAAE,UAAC,OAAe,EAAE,OAAe,EAAE,UAAkB;YAC1E,IAAM,MAAM,GAAkB,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpC,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAC3D,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;gBAC7D,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACpB,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;KACF,AAtDW,CAsDV,CAAC,YAAY;IACjB,eAAC;CAAA,AA/bD,IA+bC;AA/bY,4BAAQ"}
|
|
1
|
+
{"version":3,"file":"VEllipse.js","sourceRoot":"","sources":["../ts/VEllipse.ts"],"names":[],"mappings":"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"}
|