plotboilerplate 1.28.1 → 1.29.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 +8 -0
- package/dist/index.esm.js +335 -39
- 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 +335 -37
- package/dist/plotboilerplate.min.js +1 -1
- package/package.json +1 -1
- package/src/cjs/Circle.d.ts +70 -3
- package/src/cjs/Circle.js +159 -4
- package/src/cjs/Circle.js.map +1 -1
- package/src/cjs/Triangle.d.ts +40 -4
- package/src/cjs/Triangle.js +127 -31
- package/src/cjs/Triangle.js.map +1 -1
- package/src/cjs/VertTuple.d.ts +4 -1
- package/src/cjs/VertTuple.js +6 -1
- package/src/cjs/VertTuple.js.map +1 -1
- package/src/cjs/Vertex.d.ts +25 -2
- package/src/cjs/Vertex.js +43 -1
- package/src/cjs/Vertex.js.map +1 -1
- package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.d.ts +21 -0
- package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.js +73 -0
- package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.js.map +1 -0
- package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.d.ts +21 -0
- package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.js +73 -0
- package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.js.map +1 -0
- package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.d.ts +21 -0
- package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.js +73 -0
- package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.js.map +1 -0
- package/src/cjs/utils/algorithms/solveApollonius3.d.ts +69 -0
- package/src/cjs/utils/algorithms/solveApollonius3.js +118 -0
- package/src/cjs/utils/algorithms/solveApollonius3.js.map +1 -0
- package/src/esm/Circle.d.ts +70 -3
- package/src/esm/Circle.js +159 -4
- package/src/esm/Circle.js.map +1 -1
- package/src/esm/Triangle.d.ts +40 -4
- package/src/esm/Triangle.js +128 -32
- package/src/esm/Triangle.js.map +1 -1
- package/src/esm/VertTuple.d.ts +4 -1
- package/src/esm/VertTuple.js +6 -1
- package/src/esm/VertTuple.js.map +1 -1
- package/src/esm/Vertex.d.ts +25 -2
- package/src/esm/Vertex.js +44 -2
- package/src/esm/Vertex.js.map +1 -1
- package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.d.ts +21 -0
- package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.js +69 -0
- package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.js.map +1 -0
- package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.d.ts +21 -0
- package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.js +69 -0
- package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.js.map +1 -0
- package/src/esm/utils/algorithms/pointsMinimalContainingCircle.d.ts +21 -0
- package/src/esm/utils/algorithms/pointsMinimalContainingCircle.js +69 -0
- package/src/esm/utils/algorithms/pointsMinimalContainingCircle.js.map +1 -0
- package/src/esm/utils/algorithms/solveApollonius3.d.ts +69 -0
- package/src/esm/utils/algorithms/solveApollonius3.js +114 -0
- package/src/esm/utils/algorithms/solveApollonius3.js.map +1 -0
- package/src/index-gl.js +5 -2
- package/src/index.js +25 -17
- package/src/ts/Circle.ts +178 -5
- package/src/ts/Triangle.ts +148 -41
- package/src/ts/VertTuple.ts +14 -1
- package/src/ts/Vertex.ts +44 -2
- package/src/ts/utils/algorithms/minimalEnclosingCircleFromPoints.ts +69 -0
- package/src/ts/utils/algorithms/solveApollonius3.ts +132 -0
package/package.json
CHANGED
package/src/cjs/Circle.d.ts
CHANGED
|
@@ -14,7 +14,15 @@
|
|
|
14
14
|
* @modified 2022-08-23 Added the `closestPoint` function.
|
|
15
15
|
* @modified 2025-04-09 Added the `Circle.move(amount: XYCoords)` method.
|
|
16
16
|
* @modified 2025-04-16 Class `Circle` now implements interface `Intersectable`.
|
|
17
|
-
* @
|
|
17
|
+
* @modified 2026-06-10 Adding the utility function `Circle.circleUtils.containsPoint`.
|
|
18
|
+
* @modified 2026-06-10 Adding the `Circle.clone` method.
|
|
19
|
+
* @modified 2026-01-13 Adding helper function `Circle.circleUtils.containsPoint` and refactored the member method `containsPoint`.
|
|
20
|
+
* @modified 2026-07-03 Adding the optional `epsilon` parameter to the `Circle.containsCircle` method.
|
|
21
|
+
* @modified 2026-07-03 Fixing the `Circle.clone` method; the center had not been cloned at all, this was fixed.
|
|
22
|
+
* @modified 2026-07-08 Adding the `Circle.setRadius` method (for chaining).
|
|
23
|
+
* @mofified 2026-07-31 Adding the `radicalAxis(Circle)` method. Added the `Circle.circleUtils.createRadicalAxisHelperCircle` and `.circleDistance` helper methods.
|
|
24
|
+
* @modified 2026-08-03 Adding `Circle.tangentsFromPoint`.
|
|
25
|
+
* @version 1.7.0
|
|
18
26
|
**/
|
|
19
27
|
import { Bounds } from "./Bounds";
|
|
20
28
|
import { Line } from "./Line";
|
|
@@ -22,6 +30,11 @@ import { Vector } from "./Vector";
|
|
|
22
30
|
import { VertTuple } from "./VertTuple";
|
|
23
31
|
import { Vertex } from "./Vertex";
|
|
24
32
|
import { IBounded, Intersectable, SVGSerializable, UID, XYCoords } from "./interfaces";
|
|
33
|
+
export interface ICircle {
|
|
34
|
+
center: XYCoords;
|
|
35
|
+
radius: number;
|
|
36
|
+
radius_squared?: number;
|
|
37
|
+
}
|
|
25
38
|
/**
|
|
26
39
|
* @classdesc A simple circle: center point and radius.
|
|
27
40
|
*
|
|
@@ -33,7 +46,7 @@ import { IBounded, Intersectable, SVGSerializable, UID, XYCoords } from "./inter
|
|
|
33
46
|
* @requires UID
|
|
34
47
|
* @requires UIDGenerator
|
|
35
48
|
**/
|
|
36
|
-
export declare class Circle implements IBounded, Intersectable, SVGSerializable {
|
|
49
|
+
export declare class Circle implements IBounded, ICircle, Intersectable, SVGSerializable {
|
|
37
50
|
/**
|
|
38
51
|
* Required to generate proper CSS classes and other class related IDs.
|
|
39
52
|
**/
|
|
@@ -75,6 +88,17 @@ export declare class Circle implements IBounded, Intersectable, SVGSerializable
|
|
|
75
88
|
* @param {number} radius - The radius of the circle.
|
|
76
89
|
*/
|
|
77
90
|
constructor(center: Vertex, radius: number);
|
|
91
|
+
/**
|
|
92
|
+
* Set the radius of this circle.
|
|
93
|
+
* The method is meant for chaining, you may also alter the `radius` attribute directly.
|
|
94
|
+
*
|
|
95
|
+
* @method setRadius
|
|
96
|
+
* @param {number} radius - The amount to move.
|
|
97
|
+
* @instance
|
|
98
|
+
* @memberof Circle
|
|
99
|
+
* @return {Circle} this for chaining
|
|
100
|
+
**/
|
|
101
|
+
setRadius(radius: number): Circle;
|
|
78
102
|
/**
|
|
79
103
|
* Move the circle by the given amount.
|
|
80
104
|
*
|
|
@@ -104,7 +128,7 @@ export declare class Circle implements IBounded, Intersectable, SVGSerializable
|
|
|
104
128
|
* @memberof Circle
|
|
105
129
|
* @return {boolean} `true` if any only if the given circle is completely inside this circle.
|
|
106
130
|
*/
|
|
107
|
-
containsCircle(circle: Circle): boolean;
|
|
131
|
+
containsCircle(circle: Circle, epsilon?: number): boolean;
|
|
108
132
|
/**
|
|
109
133
|
* Calculate the distance from this circle to the given line.
|
|
110
134
|
*
|
|
@@ -192,6 +216,20 @@ export declare class Circle implements IBounded, Intersectable, SVGSerializable
|
|
|
192
216
|
* @returns
|
|
193
217
|
*/
|
|
194
218
|
lineIntersectionTangents(line: VertTuple<any>, inVectorBoundsOnly?: boolean): Array<Vector>;
|
|
219
|
+
/**
|
|
220
|
+
* Calculate the radical axis of this and a different circle.
|
|
221
|
+
* The two circles must not be co-centric.
|
|
222
|
+
*
|
|
223
|
+
* See this article for details:
|
|
224
|
+
* https://www.cut-the-knot.org/Curriculum/Geometry/GeoGebra/RadicalAxes.shtml
|
|
225
|
+
*
|
|
226
|
+
* @method radicalAxis
|
|
227
|
+
* @instance
|
|
228
|
+
* @memberof Circle
|
|
229
|
+
* @param {Circle} circleB - The second circle to calculated the radical axis for.
|
|
230
|
+
* @return {Line} A line defining the radical axis of the two circles.
|
|
231
|
+
**/
|
|
232
|
+
radicalAxis(circleB: Circle): Line;
|
|
195
233
|
/**
|
|
196
234
|
* Calculate the closest point on the outline of this circle to the given point.
|
|
197
235
|
*
|
|
@@ -202,6 +240,27 @@ export declare class Circle implements IBounded, Intersectable, SVGSerializable
|
|
|
202
240
|
* @return {Vertex} The closest point on this circle.
|
|
203
241
|
**/
|
|
204
242
|
closestPoint(vert: XYCoords): Vertex;
|
|
243
|
+
/**
|
|
244
|
+
* Get the two tangent vectors for the given point.
|
|
245
|
+
* If the point is on or in the circle then null is returned.
|
|
246
|
+
*
|
|
247
|
+
* @method tangentsFromPoint
|
|
248
|
+
* @instance
|
|
249
|
+
* @memberof Circle
|
|
250
|
+
* @param {Vertex} vert - The point to find the two tangents for.
|
|
251
|
+
* @return {[Vector,Vector]} The two tangent vector
|
|
252
|
+
**/
|
|
253
|
+
tangentsFromPoint(vert: Vertex): [Vector, Vector];
|
|
254
|
+
/**
|
|
255
|
+
* Create a deep copy of this circle.
|
|
256
|
+
*
|
|
257
|
+
* @method clone
|
|
258
|
+
* @return {Circle} A new circle, an exact copy of this one.
|
|
259
|
+
* @instance
|
|
260
|
+
* @memberof Circle
|
|
261
|
+
**/
|
|
262
|
+
clone(): Circle;
|
|
263
|
+
static fromICircle(obj: ICircle): Circle;
|
|
205
264
|
/**
|
|
206
265
|
* This function should invalidate any installed listeners and invalidate this object.
|
|
207
266
|
* After calling this function the object might not hold valid data any more and
|
|
@@ -210,5 +269,13 @@ export declare class Circle implements IBounded, Intersectable, SVGSerializable
|
|
|
210
269
|
destroy(): void;
|
|
211
270
|
static circleUtils: {
|
|
212
271
|
vertAt: (angle: number, radius: number) => Vertex;
|
|
272
|
+
containsPoint: (circleCenter: XYCoords, circleRadius: number, point: XYCoords) => boolean;
|
|
273
|
+
createRadicalAxisHelperCircle: (circleA: Circle, circleB: Circle) => Circle;
|
|
274
|
+
/**
|
|
275
|
+
* Calculate the outer distance between two circles. If the circles touch then the
|
|
276
|
+
* distance is 0.0.
|
|
277
|
+
* If the circles intersect then the distance in negative.
|
|
278
|
+
*/
|
|
279
|
+
circleDistance: (circleA: Circle, circleB: Circle) => number;
|
|
213
280
|
};
|
|
214
281
|
}
|
package/src/cjs/Circle.js
CHANGED
|
@@ -15,7 +15,15 @@
|
|
|
15
15
|
* @modified 2022-08-23 Added the `closestPoint` function.
|
|
16
16
|
* @modified 2025-04-09 Added the `Circle.move(amount: XYCoords)` method.
|
|
17
17
|
* @modified 2025-04-16 Class `Circle` now implements interface `Intersectable`.
|
|
18
|
-
* @
|
|
18
|
+
* @modified 2026-06-10 Adding the utility function `Circle.circleUtils.containsPoint`.
|
|
19
|
+
* @modified 2026-06-10 Adding the `Circle.clone` method.
|
|
20
|
+
* @modified 2026-01-13 Adding helper function `Circle.circleUtils.containsPoint` and refactored the member method `containsPoint`.
|
|
21
|
+
* @modified 2026-07-03 Adding the optional `epsilon` parameter to the `Circle.containsCircle` method.
|
|
22
|
+
* @modified 2026-07-03 Fixing the `Circle.clone` method; the center had not been cloned at all, this was fixed.
|
|
23
|
+
* @modified 2026-07-08 Adding the `Circle.setRadius` method (for chaining).
|
|
24
|
+
* @mofified 2026-07-31 Adding the `radicalAxis(Circle)` method. Added the `Circle.circleUtils.createRadicalAxisHelperCircle` and `.circleDistance` helper methods.
|
|
25
|
+
* @modified 2026-08-03 Adding `Circle.tangentsFromPoint`.
|
|
26
|
+
* @version 1.7.0
|
|
19
27
|
**/
|
|
20
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
29
|
exports.Circle = void 0;
|
|
@@ -24,6 +32,7 @@ var Line_1 = require("./Line");
|
|
|
24
32
|
var UIDGenerator_1 = require("./UIDGenerator");
|
|
25
33
|
var Vector_1 = require("./Vector");
|
|
26
34
|
var Vertex_1 = require("./Vertex");
|
|
35
|
+
var geomutils_1 = require("./geomutils");
|
|
27
36
|
/**
|
|
28
37
|
* @classdesc A simple circle: center point and radius.
|
|
29
38
|
*
|
|
@@ -53,6 +62,20 @@ var Circle = /** @class */ (function () {
|
|
|
53
62
|
this.center = center;
|
|
54
63
|
this.radius = radius;
|
|
55
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Set the radius of this circle.
|
|
67
|
+
* The method is meant for chaining, you may also alter the `radius` attribute directly.
|
|
68
|
+
*
|
|
69
|
+
* @method setRadius
|
|
70
|
+
* @param {number} radius - The amount to move.
|
|
71
|
+
* @instance
|
|
72
|
+
* @memberof Circle
|
|
73
|
+
* @return {Circle} this for chaining
|
|
74
|
+
**/
|
|
75
|
+
Circle.prototype.setRadius = function (radius) {
|
|
76
|
+
this.radius = radius;
|
|
77
|
+
return this;
|
|
78
|
+
};
|
|
56
79
|
/**
|
|
57
80
|
* Move the circle by the given amount.
|
|
58
81
|
*
|
|
@@ -76,7 +99,8 @@ var Circle = /** @class */ (function () {
|
|
|
76
99
|
* @return {boolean} `true` if the given point is inside this circle.
|
|
77
100
|
*/
|
|
78
101
|
Circle.prototype.containsPoint = function (point) {
|
|
79
|
-
return this.center.distance(point) < this.radius
|
|
102
|
+
// return this.center.distance(point) < this.radius;//
|
|
103
|
+
return Circle.circleUtils.containsPoint(this.center, this.radius, point);
|
|
80
104
|
};
|
|
81
105
|
/**
|
|
82
106
|
* Check if the given circle is fully contained inside this circle.
|
|
@@ -87,8 +111,13 @@ var Circle = /** @class */ (function () {
|
|
|
87
111
|
* @memberof Circle
|
|
88
112
|
* @return {boolean} `true` if any only if the given circle is completely inside this circle.
|
|
89
113
|
*/
|
|
90
|
-
Circle.prototype.containsCircle = function (circle) {
|
|
91
|
-
|
|
114
|
+
Circle.prototype.containsCircle = function (circle, epsilon) {
|
|
115
|
+
if (typeof epsilon === "undefined" || Number.isNaN(epsilon)) {
|
|
116
|
+
return this.center.distance(circle.center) + circle.radius < this.radius;
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
return this.center.distance(circle.center) + circle.radius < this.radius + Math.abs(epsilon);
|
|
120
|
+
}
|
|
92
121
|
};
|
|
93
122
|
/**
|
|
94
123
|
* Calculate the distance from this circle to the given line.
|
|
@@ -294,6 +323,40 @@ var Circle = /** @class */ (function () {
|
|
|
294
323
|
});
|
|
295
324
|
};
|
|
296
325
|
//--- END --- Implement interface `Intersectable`
|
|
326
|
+
/**
|
|
327
|
+
* Calculate the radical axis of this and a different circle.
|
|
328
|
+
* The two circles must not be co-centric.
|
|
329
|
+
*
|
|
330
|
+
* See this article for details:
|
|
331
|
+
* https://www.cut-the-knot.org/Curriculum/Geometry/GeoGebra/RadicalAxes.shtml
|
|
332
|
+
*
|
|
333
|
+
* @method radicalAxis
|
|
334
|
+
* @instance
|
|
335
|
+
* @memberof Circle
|
|
336
|
+
* @param {Circle} circleB - The second circle to calculated the radical axis for.
|
|
337
|
+
* @return {Line} A line defining the radical axis of the two circles.
|
|
338
|
+
**/
|
|
339
|
+
Circle.prototype.radicalAxis = function (circleB) {
|
|
340
|
+
var helperCircle = Circle.circleUtils.createRadicalAxisHelperCircle(this, circleB);
|
|
341
|
+
var intersectionLineA = this.circleIntersection(helperCircle);
|
|
342
|
+
var intersectionLineB = circleB.circleIntersection(helperCircle);
|
|
343
|
+
var intersection = this.circleIntersection(circleB);
|
|
344
|
+
if (!intersectionLineA || !intersectionLineB) {
|
|
345
|
+
console.error("Critical error: none of the two intersections must be null.");
|
|
346
|
+
return intersection; // Fallback
|
|
347
|
+
}
|
|
348
|
+
var lineA = new Line_1.Line(intersectionLineA.a, intersectionLineA.b);
|
|
349
|
+
var lineB = new Line_1.Line(intersectionLineB.a, intersectionLineB.b);
|
|
350
|
+
var firstRadicalAxisPoint = lineA.intersection(lineB);
|
|
351
|
+
var centerConnectLine = new Line_1.Line(this.center, circleB.center);
|
|
352
|
+
var secondRadicalAxisPoint = centerConnectLine.getClosestPoint(firstRadicalAxisPoint);
|
|
353
|
+
// Create a mirrored version of the second radical axis point so both are located
|
|
354
|
+
// symmetrical from the circle connect point.
|
|
355
|
+
// (currently the second point is located ON the connect line)
|
|
356
|
+
var secondRadicalAxisPoint_mirrored = secondRadicalAxisPoint.clone().scale(2.0, firstRadicalAxisPoint);
|
|
357
|
+
var radicalAxis = new Line_1.Line(firstRadicalAxisPoint, secondRadicalAxisPoint_mirrored);
|
|
358
|
+
return intersection && intersection.length() > radicalAxis.length() ? intersection : radicalAxis;
|
|
359
|
+
};
|
|
297
360
|
/**
|
|
298
361
|
* Calculate the closest point on the outline of this circle to the given point.
|
|
299
362
|
*
|
|
@@ -317,6 +380,71 @@ var Circle = /** @class */ (function () {
|
|
|
317
380
|
return lineIntersection.b;
|
|
318
381
|
}
|
|
319
382
|
};
|
|
383
|
+
/**
|
|
384
|
+
* Get the two tangent vectors for the given point.
|
|
385
|
+
* If the point is on or in the circle then null is returned.
|
|
386
|
+
*
|
|
387
|
+
* @method tangentsFromPoint
|
|
388
|
+
* @instance
|
|
389
|
+
* @memberof Circle
|
|
390
|
+
* @param {Vertex} vert - The point to find the two tangents for.
|
|
391
|
+
* @return {[Vector,Vector]} The two tangent vector
|
|
392
|
+
**/
|
|
393
|
+
Circle.prototype.tangentsFromPoint = function (vert) {
|
|
394
|
+
// Inspired by
|
|
395
|
+
// https://www.omnicalculator.com/math/tangent-circle
|
|
396
|
+
var centerDistance = this.center.distance(vert);
|
|
397
|
+
var tangentLength = Math.sqrt(centerDistance * centerDistance - this.radius * this.radius);
|
|
398
|
+
// console.log("this.radius ", this.radius, "centerDistance", centerDistance, "tangentLength", tangentLength);
|
|
399
|
+
if (Number.isNaN(tangentLength)) {
|
|
400
|
+
// vertex is inside circle
|
|
401
|
+
console.log("tangentLength is NaN", tangentLength);
|
|
402
|
+
return null;
|
|
403
|
+
}
|
|
404
|
+
var helperCircle = new Circle(vert, tangentLength);
|
|
405
|
+
var intersection = this.circleIntersection(helperCircle);
|
|
406
|
+
if (!intersection) {
|
|
407
|
+
// No intersection (vertex is inside circle)
|
|
408
|
+
return null;
|
|
409
|
+
}
|
|
410
|
+
return [new Vector_1.Vector(intersection.a, vert), new Vector_1.Vector(intersection.b, vert)];
|
|
411
|
+
};
|
|
412
|
+
/**
|
|
413
|
+
* Create a deep copy of this circle.
|
|
414
|
+
*
|
|
415
|
+
* @method clone
|
|
416
|
+
* @return {Circle} A new circle, an exact copy of this one.
|
|
417
|
+
* @instance
|
|
418
|
+
* @memberof Circle
|
|
419
|
+
**/
|
|
420
|
+
Circle.prototype.clone = function () {
|
|
421
|
+
return new Circle(this.center.clone(), this.radius);
|
|
422
|
+
};
|
|
423
|
+
Circle.fromICircle = function (obj) {
|
|
424
|
+
return new Circle(new Vertex_1.Vertex(obj.center), obj.radius);
|
|
425
|
+
};
|
|
426
|
+
// static fromObject(obj: object): Circle {
|
|
427
|
+
// if (!obj) {
|
|
428
|
+
// return null;
|
|
429
|
+
// }
|
|
430
|
+
// if (typeof obj !== "object") {
|
|
431
|
+
// return null;
|
|
432
|
+
// }
|
|
433
|
+
// if (!obj.hasOwnProperty("center") || typeof (obj as any).center != "object") {
|
|
434
|
+
// return null;
|
|
435
|
+
// }
|
|
436
|
+
// if (!obj.hasOwnProperty("radius") || typeof !(obj as any).radius != "number") {
|
|
437
|
+
// return null;
|
|
438
|
+
// }
|
|
439
|
+
// var center = (obj as any).center;
|
|
440
|
+
// if (!center.hasOwnProperty("x") || typeof (center as any).x != "number") {
|
|
441
|
+
// return null;
|
|
442
|
+
// }
|
|
443
|
+
// if (!center.hasOwnProperty("y") || typeof (center as any).y != "number") {
|
|
444
|
+
// return null;
|
|
445
|
+
// }
|
|
446
|
+
// return new Circle(new Vertex(center), (obj as any).radius);
|
|
447
|
+
// }
|
|
320
448
|
/**
|
|
321
449
|
* This function should invalidate any installed listeners and invalidate this object.
|
|
322
450
|
* After calling this function the object might not hold valid data any more and
|
|
@@ -331,6 +459,33 @@ var Circle = /** @class */ (function () {
|
|
|
331
459
|
/* return new Vertex( Math.sin(angle) * radius,
|
|
332
460
|
Math.cos(angle) * radius ); */
|
|
333
461
|
return new Vertex_1.Vertex(Math.cos(angle) * radius, Math.sin(angle) * radius);
|
|
462
|
+
},
|
|
463
|
+
containsPoint: function (circleCenter, circleRadius, point) {
|
|
464
|
+
// TODO: cleanup
|
|
465
|
+
// return (
|
|
466
|
+
// (circle.center.x - point.x) * (circle.center.x - point.x) + (circle.center.y - point.y) * (circle.center.y - point.y) <=
|
|
467
|
+
// circle.radius * circle.radius
|
|
468
|
+
// );
|
|
469
|
+
return geomutils_1.geomutils.dist4(point.x, point.y, circleCenter.x, circleCenter.y) < circleRadius;
|
|
470
|
+
},
|
|
471
|
+
createRadicalAxisHelperCircle: function (circleA, circleB) {
|
|
472
|
+
// We need to create a helper circle that intersects BOTH other circles,
|
|
473
|
+
// each in TWO points.
|
|
474
|
+
var circleConnectLine = new Vector_1.Vector(circleA.center.clone(), circleB.center);
|
|
475
|
+
circleConnectLine.a.set(circleConnectLine.vertAt(0.5));
|
|
476
|
+
// Get the perpendicular by half the circle distance.
|
|
477
|
+
var bisector = circleConnectLine.perp();
|
|
478
|
+
var bisectorLength = Math.max(circleA.radius, circleB.radius, bisector.length());
|
|
479
|
+
bisector.setLength(bisectorLength);
|
|
480
|
+
return new Circle(bisector.b, bisector.b.distance(circleA.center));
|
|
481
|
+
},
|
|
482
|
+
/**
|
|
483
|
+
* Calculate the outer distance between two circles. If the circles touch then the
|
|
484
|
+
* distance is 0.0.
|
|
485
|
+
* If the circles intersect then the distance in negative.
|
|
486
|
+
*/
|
|
487
|
+
circleDistance: function (circleA, circleB) {
|
|
488
|
+
return circleA.center.distance(circleB.center) - circleA.radius - circleB.radius;
|
|
334
489
|
}
|
|
335
490
|
};
|
|
336
491
|
return Circle;
|
package/src/cjs/Circle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../ts/Circle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Circle.js","sourceRoot":"","sources":["../ts/Circle.ts"],"names":[],"mappings":"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"}
|
package/src/cjs/Triangle.d.ts
CHANGED
|
@@ -27,14 +27,17 @@
|
|
|
27
27
|
* @modified 2025-14-16 Class `Triangle` now implements interface `IBounded`.
|
|
28
28
|
* @modified 2025-14-16 Class `Triangle` now implements interface `Intersectable`.
|
|
29
29
|
* @modified 2025-14-16 Added method `Triangle.move`.
|
|
30
|
-
* @
|
|
30
|
+
* @modified 2026-06-10 Refactoring the `Trianble.bounds` method and added a plain `Triangle.utils.bounds` method.
|
|
31
|
+
* @modified 2026-06-10 Refactoring the `Trianble.calcCircumCircle` method and added a plain `Triangle.utils.calcCircumCircle` method.
|
|
32
|
+
* @modified 2026-06-13 Adding `Triangle.getVertices()`.
|
|
33
|
+
* @version 2.11.0
|
|
31
34
|
*
|
|
32
35
|
* @file Triangle
|
|
33
36
|
* @fileoverview A simple triangle class: three vertices.
|
|
34
37
|
* @public
|
|
35
38
|
**/
|
|
36
39
|
import { Bounds } from "./Bounds";
|
|
37
|
-
import { Circle } from "./Circle";
|
|
40
|
+
import { Circle, ICircle } from "./Circle";
|
|
38
41
|
import { Line } from "./Line";
|
|
39
42
|
import { Polygon } from "./Polygon";
|
|
40
43
|
import { Vector } from "./Vector";
|
|
@@ -212,11 +215,21 @@ export declare class Triangle implements IBounded, SVGSerializable, Intersectabl
|
|
|
212
215
|
* after triangle vertex changes.
|
|
213
216
|
*
|
|
214
217
|
* @method getCircumcircle
|
|
215
|
-
* @return {
|
|
218
|
+
* @return {Circle} - The circle touching exactly all three triangle vertices.
|
|
216
219
|
* @instance
|
|
217
220
|
* @memberof Triangle
|
|
218
221
|
*/
|
|
219
222
|
getCircumcircle(): Circle;
|
|
223
|
+
/**
|
|
224
|
+
* Calculates the minimun enclosing circle.
|
|
225
|
+
*
|
|
226
|
+
* @method getMinimumEnclosingCircle
|
|
227
|
+
* @return {Object} - { center:Vertex, radius:float }
|
|
228
|
+
* @instance
|
|
229
|
+
* @memberof Triangle
|
|
230
|
+
* @returns
|
|
231
|
+
*/
|
|
232
|
+
getMinimumEnclosingCircle(): Circle;
|
|
220
233
|
/**
|
|
221
234
|
* Check if this triangle and the passed triangle share an
|
|
222
235
|
* adjacent edge.
|
|
@@ -243,6 +256,15 @@ export declare class Triangle implements IBounded, SVGSerializable, Intersectabl
|
|
|
243
256
|
* @memberof Triangle
|
|
244
257
|
*/
|
|
245
258
|
getThirdVertex(vert1: Vertex, vert2: Vertex): Vertex;
|
|
259
|
+
/**
|
|
260
|
+
* Get the three triangele vertices in a 3-element array.
|
|
261
|
+
*
|
|
262
|
+
* @method getVertices
|
|
263
|
+
* @returns {[Vertex, Vertex, Vertex]} - The three vertices – real instances, not copies.
|
|
264
|
+
* @instance
|
|
265
|
+
* @memberof Triangle
|
|
266
|
+
*/
|
|
267
|
+
getVertices(): [Vertex, Vertex, Vertex];
|
|
246
268
|
/**
|
|
247
269
|
* Re-compute the circumcircle of this triangle (if the vertices
|
|
248
270
|
* have changed).
|
|
@@ -387,6 +409,20 @@ export declare class Triangle implements IBounded, SVGSerializable, Intersectabl
|
|
|
387
409
|
* @param {XYCords} c - The first vertex.
|
|
388
410
|
* @returns {nmber}
|
|
389
411
|
*/
|
|
390
|
-
determinant(a: XYCoords, b: XYCoords, c: XYCoords)
|
|
412
|
+
determinant: (a: XYCoords, b: XYCoords, c: XYCoords) => number;
|
|
413
|
+
bounds: (a: XYCoords, b: XYCoords, c: XYCoords) => Bounds;
|
|
414
|
+
/**
|
|
415
|
+
* Re-compute the circumcircle of this triangle (if the vertices
|
|
416
|
+
* have changed).
|
|
417
|
+
*
|
|
418
|
+
* The circumcenter and radius are stored in this.center and
|
|
419
|
+
* this.radius. There is a third result: radius_squared (for internal computations).
|
|
420
|
+
*
|
|
421
|
+
* @method calcCircumcircle
|
|
422
|
+
* @return void
|
|
423
|
+
* @instance
|
|
424
|
+
* @memberof Triangle
|
|
425
|
+
*/
|
|
426
|
+
calcCircumcircle: (a: XYCoords, b: XYCoords, c: XYCoords) => ICircle;
|
|
391
427
|
};
|
|
392
428
|
}
|