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.
Files changed (66) hide show
  1. package/README.md +8 -0
  2. package/dist/index.esm.js +335 -39
  3. package/dist/index.esm.js.map +1 -1
  4. package/dist/index.esm.min.js +1 -1
  5. package/dist/index.esm.min.js.map +1 -1
  6. package/dist/plotboilerplate.browser.min.js +1 -1
  7. package/dist/plotboilerplate.browser.min.js.map +1 -1
  8. package/dist/plotboilerplate.js +335 -37
  9. package/dist/plotboilerplate.min.js +1 -1
  10. package/package.json +1 -1
  11. package/src/cjs/Circle.d.ts +70 -3
  12. package/src/cjs/Circle.js +159 -4
  13. package/src/cjs/Circle.js.map +1 -1
  14. package/src/cjs/Triangle.d.ts +40 -4
  15. package/src/cjs/Triangle.js +127 -31
  16. package/src/cjs/Triangle.js.map +1 -1
  17. package/src/cjs/VertTuple.d.ts +4 -1
  18. package/src/cjs/VertTuple.js +6 -1
  19. package/src/cjs/VertTuple.js.map +1 -1
  20. package/src/cjs/Vertex.d.ts +25 -2
  21. package/src/cjs/Vertex.js +43 -1
  22. package/src/cjs/Vertex.js.map +1 -1
  23. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.d.ts +21 -0
  24. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.js +73 -0
  25. package/src/cjs/utils/algorithms/minimalContainingCircleFromPoints.js.map +1 -0
  26. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.d.ts +21 -0
  27. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.js +73 -0
  28. package/src/cjs/utils/algorithms/minimalEnclosingCircleFromPoints.js.map +1 -0
  29. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.d.ts +21 -0
  30. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.js +73 -0
  31. package/src/cjs/utils/algorithms/pointsMinimalContainingCircle.js.map +1 -0
  32. package/src/cjs/utils/algorithms/solveApollonius3.d.ts +69 -0
  33. package/src/cjs/utils/algorithms/solveApollonius3.js +118 -0
  34. package/src/cjs/utils/algorithms/solveApollonius3.js.map +1 -0
  35. package/src/esm/Circle.d.ts +70 -3
  36. package/src/esm/Circle.js +159 -4
  37. package/src/esm/Circle.js.map +1 -1
  38. package/src/esm/Triangle.d.ts +40 -4
  39. package/src/esm/Triangle.js +128 -32
  40. package/src/esm/Triangle.js.map +1 -1
  41. package/src/esm/VertTuple.d.ts +4 -1
  42. package/src/esm/VertTuple.js +6 -1
  43. package/src/esm/VertTuple.js.map +1 -1
  44. package/src/esm/Vertex.d.ts +25 -2
  45. package/src/esm/Vertex.js +44 -2
  46. package/src/esm/Vertex.js.map +1 -1
  47. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.d.ts +21 -0
  48. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.js +69 -0
  49. package/src/esm/utils/algorithms/minimalContainingCircleFromPoints.js.map +1 -0
  50. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.d.ts +21 -0
  51. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.js +69 -0
  52. package/src/esm/utils/algorithms/minimalEnclosingCircleFromPoints.js.map +1 -0
  53. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.d.ts +21 -0
  54. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.js +69 -0
  55. package/src/esm/utils/algorithms/pointsMinimalContainingCircle.js.map +1 -0
  56. package/src/esm/utils/algorithms/solveApollonius3.d.ts +69 -0
  57. package/src/esm/utils/algorithms/solveApollonius3.js +114 -0
  58. package/src/esm/utils/algorithms/solveApollonius3.js.map +1 -0
  59. package/src/index-gl.js +5 -2
  60. package/src/index.js +25 -17
  61. package/src/ts/Circle.ts +178 -5
  62. package/src/ts/Triangle.ts +148 -41
  63. package/src/ts/VertTuple.ts +14 -1
  64. package/src/ts/Vertex.ts +44 -2
  65. package/src/ts/utils/algorithms/minimalEnclosingCircleFromPoints.ts +69 -0
  66. package/src/ts/utils/algorithms/solveApollonius3.ts +132 -0
package/src/esm/Circle.js CHANGED
@@ -14,13 +14,22 @@
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
- * @version 1.5.0
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";
21
29
  import { UIDGenerator } from "./UIDGenerator";
22
30
  import { Vector } from "./Vector";
23
31
  import { Vertex } from "./Vertex";
32
+ import { geomutils } from "./geomutils";
24
33
  /**
25
34
  * @classdesc A simple circle: center point and radius.
26
35
  *
@@ -50,6 +59,20 @@ export class Circle {
50
59
  this.center = center;
51
60
  this.radius = radius;
52
61
  }
62
+ /**
63
+ * Set the radius of this circle.
64
+ * The method is meant for chaining, you may also alter the `radius` attribute directly.
65
+ *
66
+ * @method setRadius
67
+ * @param {number} radius - The amount to move.
68
+ * @instance
69
+ * @memberof Circle
70
+ * @return {Circle} this for chaining
71
+ **/
72
+ setRadius(radius) {
73
+ this.radius = radius;
74
+ return this;
75
+ }
53
76
  /**
54
77
  * Move the circle by the given amount.
55
78
  *
@@ -73,7 +96,8 @@ export class Circle {
73
96
  * @return {boolean} `true` if the given point is inside this circle.
74
97
  */
75
98
  containsPoint(point) {
76
- return this.center.distance(point) < this.radius;
99
+ // return this.center.distance(point) < this.radius;//
100
+ return Circle.circleUtils.containsPoint(this.center, this.radius, point);
77
101
  }
78
102
  /**
79
103
  * Check if the given circle is fully contained inside this circle.
@@ -84,8 +108,13 @@ export class Circle {
84
108
  * @memberof Circle
85
109
  * @return {boolean} `true` if any only if the given circle is completely inside this circle.
86
110
  */
87
- containsCircle(circle) {
88
- return this.center.distance(circle.center) + circle.radius < this.radius;
111
+ containsCircle(circle, epsilon) {
112
+ if (typeof epsilon === "undefined" || Number.isNaN(epsilon)) {
113
+ return this.center.distance(circle.center) + circle.radius < this.radius;
114
+ }
115
+ else {
116
+ return this.center.distance(circle.center) + circle.radius < this.radius + Math.abs(epsilon);
117
+ }
89
118
  }
90
119
  /**
91
120
  * Calculate the distance from this circle to the given line.
@@ -288,6 +317,40 @@ export class Circle {
288
317
  });
289
318
  }
290
319
  //--- END --- Implement interface `Intersectable`
320
+ /**
321
+ * Calculate the radical axis of this and a different circle.
322
+ * The two circles must not be co-centric.
323
+ *
324
+ * See this article for details:
325
+ * https://www.cut-the-knot.org/Curriculum/Geometry/GeoGebra/RadicalAxes.shtml
326
+ *
327
+ * @method radicalAxis
328
+ * @instance
329
+ * @memberof Circle
330
+ * @param {Circle} circleB - The second circle to calculated the radical axis for.
331
+ * @return {Line} A line defining the radical axis of the two circles.
332
+ **/
333
+ radicalAxis(circleB) {
334
+ var helperCircle = Circle.circleUtils.createRadicalAxisHelperCircle(this, circleB);
335
+ var intersectionLineA = this.circleIntersection(helperCircle);
336
+ var intersectionLineB = circleB.circleIntersection(helperCircle);
337
+ var intersection = this.circleIntersection(circleB);
338
+ if (!intersectionLineA || !intersectionLineB) {
339
+ console.error("Critical error: none of the two intersections must be null.");
340
+ return intersection; // Fallback
341
+ }
342
+ var lineA = new Line(intersectionLineA.a, intersectionLineA.b);
343
+ var lineB = new Line(intersectionLineB.a, intersectionLineB.b);
344
+ var firstRadicalAxisPoint = lineA.intersection(lineB);
345
+ var centerConnectLine = new Line(this.center, circleB.center);
346
+ var secondRadicalAxisPoint = centerConnectLine.getClosestPoint(firstRadicalAxisPoint);
347
+ // Create a mirrored version of the second radical axis point so both are located
348
+ // symmetrical from the circle connect point.
349
+ // (currently the second point is located ON the connect line)
350
+ var secondRadicalAxisPoint_mirrored = secondRadicalAxisPoint.clone().scale(2.0, firstRadicalAxisPoint);
351
+ var radicalAxis = new Line(firstRadicalAxisPoint, secondRadicalAxisPoint_mirrored);
352
+ return intersection && intersection.length() > radicalAxis.length() ? intersection : radicalAxis;
353
+ }
291
354
  /**
292
355
  * Calculate the closest point on the outline of this circle to the given point.
293
356
  *
@@ -311,6 +374,71 @@ export class Circle {
311
374
  return lineIntersection.b;
312
375
  }
313
376
  }
377
+ /**
378
+ * Get the two tangent vectors for the given point.
379
+ * If the point is on or in the circle then null is returned.
380
+ *
381
+ * @method tangentsFromPoint
382
+ * @instance
383
+ * @memberof Circle
384
+ * @param {Vertex} vert - The point to find the two tangents for.
385
+ * @return {[Vector,Vector]} The two tangent vector
386
+ **/
387
+ tangentsFromPoint(vert) {
388
+ // Inspired by
389
+ // https://www.omnicalculator.com/math/tangent-circle
390
+ const centerDistance = this.center.distance(vert);
391
+ const tangentLength = Math.sqrt(centerDistance * centerDistance - this.radius * this.radius);
392
+ // console.log("this.radius ", this.radius, "centerDistance", centerDistance, "tangentLength", tangentLength);
393
+ if (Number.isNaN(tangentLength)) {
394
+ // vertex is inside circle
395
+ console.log("tangentLength is NaN", tangentLength);
396
+ return null;
397
+ }
398
+ const helperCircle = new Circle(vert, tangentLength);
399
+ const intersection = this.circleIntersection(helperCircle);
400
+ if (!intersection) {
401
+ // No intersection (vertex is inside circle)
402
+ return null;
403
+ }
404
+ return [new Vector(intersection.a, vert), new Vector(intersection.b, vert)];
405
+ }
406
+ /**
407
+ * Create a deep copy of this circle.
408
+ *
409
+ * @method clone
410
+ * @return {Circle} A new circle, an exact copy of this one.
411
+ * @instance
412
+ * @memberof Circle
413
+ **/
414
+ clone() {
415
+ return new Circle(this.center.clone(), this.radius);
416
+ }
417
+ static fromICircle(obj) {
418
+ return new Circle(new Vertex(obj.center), obj.radius);
419
+ }
420
+ // static fromObject(obj: object): Circle {
421
+ // if (!obj) {
422
+ // return null;
423
+ // }
424
+ // if (typeof obj !== "object") {
425
+ // return null;
426
+ // }
427
+ // if (!obj.hasOwnProperty("center") || typeof (obj as any).center != "object") {
428
+ // return null;
429
+ // }
430
+ // if (!obj.hasOwnProperty("radius") || typeof !(obj as any).radius != "number") {
431
+ // return null;
432
+ // }
433
+ // var center = (obj as any).center;
434
+ // if (!center.hasOwnProperty("x") || typeof (center as any).x != "number") {
435
+ // return null;
436
+ // }
437
+ // if (!center.hasOwnProperty("y") || typeof (center as any).y != "number") {
438
+ // return null;
439
+ // }
440
+ // return new Circle(new Vertex(center), (obj as any).radius);
441
+ // }
314
442
  /**
315
443
  * This function should invalidate any installed listeners and invalidate this object.
316
444
  * After calling this function the object might not hold valid data any more and
@@ -326,6 +454,33 @@ Circle.circleUtils = {
326
454
  /* return new Vertex( Math.sin(angle) * radius,
327
455
  Math.cos(angle) * radius ); */
328
456
  return new Vertex(Math.cos(angle) * radius, Math.sin(angle) * radius);
457
+ },
458
+ containsPoint: (circleCenter, circleRadius, point) => {
459
+ // TODO: cleanup
460
+ // return (
461
+ // (circle.center.x - point.x) * (circle.center.x - point.x) + (circle.center.y - point.y) * (circle.center.y - point.y) <=
462
+ // circle.radius * circle.radius
463
+ // );
464
+ return geomutils.dist4(point.x, point.y, circleCenter.x, circleCenter.y) < circleRadius;
465
+ },
466
+ createRadicalAxisHelperCircle: (circleA, circleB) => {
467
+ // We need to create a helper circle that intersects BOTH other circles,
468
+ // each in TWO points.
469
+ var circleConnectLine = new Vector(circleA.center.clone(), circleB.center);
470
+ circleConnectLine.a.set(circleConnectLine.vertAt(0.5));
471
+ // Get the perpendicular by half the circle distance.
472
+ var bisector = circleConnectLine.perp();
473
+ var bisectorLength = Math.max(circleA.radius, circleB.radius, bisector.length());
474
+ bisector.setLength(bisectorLength);
475
+ return new Circle(bisector.b, bisector.b.distance(circleA.center));
476
+ },
477
+ /**
478
+ * Calculate the outer distance between two circles. If the circles touch then the
479
+ * distance is 0.0.
480
+ * If the circles intersect then the distance in negative.
481
+ */
482
+ circleDistance: (circleA, circleB) => {
483
+ return circleA.center.distance(circleB.center) - circleA.radius - circleB.radius;
329
484
  }
330
485
  };
331
486
  //# sourceMappingURL=Circle.js.map
@@ -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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"}
@@ -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
- * @version 2.10.0
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 {Object} - { center:Vertex, radius:float }
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): number;
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
  }
@@ -27,7 +27,10 @@
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
- * @version 2.10.0
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.
@@ -39,6 +42,7 @@ import { Line } from "./Line";
39
42
  import { Polygon } from "./Polygon";
40
43
  import { UIDGenerator } from "./UIDGenerator";
41
44
  import { Vector } from "./Vector";
45
+ import { VertTuple } from "./VertTuple";
42
46
  import { Vertex } from "./Vertex";
43
47
  import { geomutils } from "./geomutils";
44
48
  /**
@@ -180,7 +184,7 @@ export class Triangle {
180
184
  * after triangle vertex changes.
181
185
  *
182
186
  * @method getCircumcircle
183
- * @return {Object} - { center:Vertex, radius:float }
187
+ * @return {Circle} - The circle touching exactly all three triangle vertices.
184
188
  * @instance
185
189
  * @memberof Triangle
186
190
  */
@@ -189,6 +193,33 @@ export class Triangle {
189
193
  this.calcCircumcircle();
190
194
  return new Circle(this.center.clone(), this.radius);
191
195
  }
196
+ /**
197
+ * Calculates the minimun enclosing circle.
198
+ *
199
+ * @method getMinimumEnclosingCircle
200
+ * @return {Object} - { center:Vertex, radius:float }
201
+ * @instance
202
+ * @memberof Triangle
203
+ * @returns
204
+ */
205
+ getMinimumEnclosingCircle() {
206
+ // First option: two points construct a circle and the third point is contained.
207
+ var circleAB = VertTuple.vtutils.calcCircumcircle(this.a, this.b);
208
+ if (Circle.circleUtils.containsPoint(circleAB.center, circleAB.radius, this.c)) {
209
+ return Circle.fromICircle(circleAB);
210
+ }
211
+ var circleBC = VertTuple.vtutils.calcCircumcircle(this.b, this.c);
212
+ if (Circle.circleUtils.containsPoint(circleBC.center, circleBC.radius, this.c)) {
213
+ return Circle.fromICircle(circleBC);
214
+ }
215
+ var circleCA = VertTuple.vtutils.calcCircumcircle(this.c, this.a);
216
+ if (Circle.circleUtils.containsPoint(circleCA.center, circleCA.radius, this.c)) {
217
+ return Circle.fromICircle(circleCA);
218
+ }
219
+ // If none of the three upper cases applies: return the circumcircle.
220
+ var circumCircle = Triangle.utils.calcCircumcircle(this.a, this.b, this.c);
221
+ return Circle.fromICircle(circumCircle);
222
+ }
192
223
  /**
193
224
  * Check if this triangle and the passed triangle share an
194
225
  * adjacent edge.
@@ -227,6 +258,17 @@ export class Triangle {
227
258
  //if( this.c.equals(vert1) && this.a.equals(vert2) || this.c.equals(vert2) && this.a.equals(vert1) )
228
259
  return this.b;
229
260
  }
261
+ /**
262
+ * Get the three triangele vertices in a 3-element array.
263
+ *
264
+ * @method getVertices
265
+ * @returns {[Vertex, Vertex, Vertex]} - The three vertices – real instances, not copies.
266
+ * @instance
267
+ * @memberof Triangle
268
+ */
269
+ getVertices() {
270
+ return [this.a, this.b, this.c];
271
+ }
230
272
  /**
231
273
  * Re-compute the circumcircle of this triangle (if the vertices
232
274
  * have changed).
@@ -240,32 +282,35 @@ export class Triangle {
240
282
  * @memberof Triangle
241
283
  */
242
284
  calcCircumcircle() {
243
- // From
244
- // http://www.exaflop.org/docs/cgafaq/cga1.html
245
- const A = this.b.x - this.a.x;
246
- const B = this.b.y - this.a.y;
247
- const C = this.c.x - this.a.x;
248
- const D = this.c.y - this.a.y;
249
- const E = A * (this.a.x + this.b.x) + B * (this.a.y + this.b.y);
250
- const F = C * (this.a.x + this.c.x) + D * (this.a.y + this.c.y);
251
- const G = 2.0 * (A * (this.c.y - this.b.y) - B * (this.c.x - this.b.x));
252
- let dx, dy;
253
- if (Math.abs(G) < Triangle.EPSILON) {
254
- // Collinear - find extremes and use the midpoint
255
- const bounds = this.bounds();
256
- this.center = new Vertex((bounds.min.x + bounds.max.x) / 2, (bounds.min.y + bounds.max.y) / 2);
257
- dx = this.center.x - bounds.min.x;
258
- dy = this.center.y - bounds.min.y;
259
- }
260
- else {
261
- const cx = (D * E - B * F) / G;
262
- const cy = (A * F - C * E) / G;
263
- this.center = new Vertex(cx, cy);
264
- dx = this.center.x - this.a.x;
265
- dy = this.center.y - this.a.y;
266
- }
267
- this.radius_squared = dx * dx + dy * dy;
268
- this.radius = Math.sqrt(this.radius_squared);
285
+ // // From
286
+ // // http://www.exaflop.org/docs/cgafaq/cga1.html
287
+ // const A: number = this.b.x - this.a.x;
288
+ // const B: number = this.b.y - this.a.y;
289
+ // const C: number = this.c.x - this.a.x;
290
+ // const D: number = this.c.y - this.a.y;
291
+ // const E: number = A * (this.a.x + this.b.x) + B * (this.a.y + this.b.y);
292
+ // const F: number = C * (this.a.x + this.c.x) + D * (this.a.y + this.c.y);
293
+ // const G: number = 2.0 * (A * (this.c.y - this.b.y) - B * (this.c.x - this.b.x));
294
+ // let dx: number, dy: number;
295
+ // if (Math.abs(G) < Triangle.EPSILON) {
296
+ // // Collinear - find extremes and use the midpoint
297
+ // const bounds: Bounds = this.bounds();
298
+ // this.center = new Vertex((bounds.min.x + bounds.max.x) / 2, (bounds.min.y + bounds.max.y) / 2);
299
+ // dx = this.center.x - bounds.min.x;
300
+ // dy = this.center.y - bounds.min.y;
301
+ // } else {
302
+ // const cx: number = (D * E - B * F) / G;
303
+ // const cy: number = (A * F - C * E) / G;
304
+ // this.center = new Vertex(cx, cy);
305
+ // dx = this.center.x - this.a.x;
306
+ // dy = this.center.y - this.a.y;
307
+ // }
308
+ // this.radius_squared = dx * dx + dy * dy;
309
+ // this.radius = Math.sqrt(this.radius_squared);
310
+ const tmpCircle = Triangle.utils.calcCircumcircle(this.a, this.b, this.c);
311
+ this.center = new Vertex(tmpCircle.center.x, tmpCircle.center.y);
312
+ this.radius = tmpCircle.radius;
313
+ this.radius_squared = tmpCircle.radius_squared;
269
314
  } // END calcCircumcircle
270
315
  /**
271
316
  * Check if the passed vertex is inside this triangle's
@@ -292,7 +337,11 @@ export class Triangle {
292
337
  * @memberof Triangle
293
338
  */
294
339
  bounds() {
295
- return new Bounds(new 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(Triangle.utils.max3(this.a.x, this.b.x, this.c.x), Triangle.utils.max3(this.a.y, this.b.y, this.c.y)));
340
+ // return new Bounds(
341
+ // new 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)),
342
+ // new 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))
343
+ // );
344
+ return Triangle.utils.bounds(this.a, this.b, this.c);
296
345
  }
297
346
  //--- BEGIN --- Implement interface `Intersectable`
298
347
  /**
@@ -415,8 +464,9 @@ export class Triangle {
415
464
  * @return Vertex The incenter of this triangle.
416
465
  **/
417
466
  getIncenter() {
418
- if (!this.center || !this.radius)
467
+ if (!this.center || !this.radius) {
419
468
  this.calcCircumcircle();
469
+ }
420
470
  return this.center.clone();
421
471
  }
422
472
  /**
@@ -482,8 +532,54 @@ Triangle.utils = {
482
532
  * @param {XYCords} c - The first vertex.
483
533
  * @returns {nmber}
484
534
  */
485
- determinant(a, b, c) {
535
+ determinant: (a, b, c) => {
486
536
  return (b.y - a.y) * (c.x - b.x) - (c.y - b.y) * (b.x - a.x);
487
- }
537
+ },
538
+ bounds: (a, b, c) => {
539
+ return new Bounds(new Vertex(Triangle.utils.min3(a.x, b.x, c.x), Triangle.utils.min3(a.y, b.y, c.y)), new Vertex(Triangle.utils.max3(a.x, b.x, c.x), Triangle.utils.max3(a.y, b.y, c.y)));
540
+ },
541
+ /**
542
+ * Re-compute the circumcircle of this triangle (if the vertices
543
+ * have changed).
544
+ *
545
+ * The circumcenter and radius are stored in this.center and
546
+ * this.radius. There is a third result: radius_squared (for internal computations).
547
+ *
548
+ * @method calcCircumcircle
549
+ * @return void
550
+ * @instance
551
+ * @memberof Triangle
552
+ */
553
+ calcCircumcircle: (a, b, c) => {
554
+ // From
555
+ // http://www.exaflop.org/docs/cgafaq/cga1.html
556
+ const A = b.x - a.x;
557
+ const B = b.y - a.y;
558
+ const C = c.x - a.x;
559
+ const D = c.y - a.y;
560
+ const E = A * (a.x + b.x) + B * (a.y + b.y);
561
+ const F = C * (a.x + c.x) + D * (a.y + c.y);
562
+ const G = 2.0 * (A * (c.y - b.y) - B * (c.x - b.x));
563
+ let dx, dy;
564
+ let center;
565
+ if (Math.abs(G) < Triangle.EPSILON) {
566
+ // Collinear - find extremes and use the midpoint
567
+ // const bounds: Bounds = this.bounds();
568
+ const bounds = Triangle.utils.bounds(a, b, c);
569
+ center = new Vertex((bounds.min.x + bounds.max.x) / 2, (bounds.min.y + bounds.max.y) / 2);
570
+ dx = center.x - bounds.min.x;
571
+ dy = center.y - bounds.min.y;
572
+ }
573
+ else {
574
+ const cx = (D * E - B * F) / G;
575
+ const cy = (A * F - C * E) / G;
576
+ center = new Vertex(cx, cy);
577
+ dx = center.x - a.x;
578
+ dy = center.y - a.y;
579
+ }
580
+ const radius_squared = dx * dx + dy * dy;
581
+ const radius = Math.sqrt(radius_squared);
582
+ return { center: center, radius: radius, radius_squared: radius_squared };
583
+ } // END calcCircumcircle
488
584
  };
489
585
  //# sourceMappingURL=Triangle.js.map
@@ -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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"}
@@ -16,10 +16,12 @@
16
16
  * @modified 2025-03-31 Added the `VertTuple.revert` method.
17
17
  * @modified 2025-04-15 Changed param of `VertTuple.moveTo` method from `Vertex` to `XYCoords`.
18
18
  * @modified 2025-04-15 Added method `VertTuple.move` method.
19
- * @version 1.4.0
19
+ * @modified 2026-06-10 Adding helper function `VertTuple.utils.calcCircumcircle`.
20
+ * @version 1.5.0
20
21
  */
21
22
  import { Vertex } from "./Vertex";
22
23
  import { XYCoords, UID } from "./interfaces";
24
+ import { ICircle } from "./Circle";
23
25
  /**
24
26
  * @classdesc An abstract base classes for vertex tuple constructs, like Lines or Vectors.
25
27
  * @abstract
@@ -280,5 +282,6 @@ export declare class VertTuple<T extends VertTuple<T>> {
280
282
  **/
281
283
  static vtutils: {
282
284
  dist2: (v: XYCoords, w: XYCoords) => number;
285
+ calcCircumcircle: (p1: XYCoords, p2: XYCoords) => ICircle;
283
286
  };
284
287
  }