MCPcopy Create free account
hub / github.com/breck7/scroll / encloseBasis3

Function encloseBasis3

external/.d3.js:13386–13413  ·  view source on GitHub ↗
(a, b, c)

Source from the content-addressed store, hash-verified

13384}
13385
13386function encloseBasis3(a, b, c) {
13387 var x1 = a.x, y1 = a.y, r1 = a.r,
13388 x2 = b.x, y2 = b.y, r2 = b.r,
13389 x3 = c.x, y3 = c.y, r3 = c.r,
13390 a2 = x1 - x2,
13391 a3 = x1 - x3,
13392 b2 = y1 - y2,
13393 b3 = y1 - y3,
13394 c2 = r2 - r1,
13395 c3 = r3 - r1,
13396 d1 = x1 * x1 + y1 * y1 - r1 * r1,
13397 d2 = d1 - x2 * x2 - y2 * y2 + r2 * r2,
13398 d3 = d1 - x3 * x3 - y3 * y3 + r3 * r3,
13399 ab = a3 * b2 - a2 * b3,
13400 xa = (b2 * d3 - b3 * d2) / (ab * 2) - x1,
13401 xb = (b3 * c2 - b2 * c3) / ab,
13402 ya = (a3 * d2 - a2 * d3) / (ab * 2) - y1,
13403 yb = (a2 * c3 - a3 * c2) / ab,
13404 A = xb * xb + yb * yb - 1,
13405 B = 2 * (r1 + xa * xb + ya * yb),
13406 C = xa * xa + ya * ya - r1 * r1,
13407 r = -(Math.abs(A) > 1e-6 ? (B + Math.sqrt(B * B - 4 * A * C)) / (2 * A) : C / B);
13408 return {
13409 x: x1 + xa + xb * r,
13410 y: y1 + ya + yb * r,
13411 r: r
13412 };
13413}
13414
13415function place(b, a, c) {
13416 var dx = b.x - a.x, x, a2,

Callers 2

extendBasisFunction · 0.85
encloseBasisFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected