haar_lib/geom/
circumcircle.rs1use crate::geom::*;
4
5pub fn circumcircle(a: Vector, b: Vector, c: Vector) -> Circle {
7 let a_ = (b - c).abs_sq();
8 let b_ = (a - c).abs_sq();
9 let c_ = (a - b).abs_sq();
10 let s = a_ + b_ + c_;
11 let a_ = a_ * a_.mul_add(-2.0, s);
12 let b_ = b_ * b_.mul_add(-2.0, s);
13 let c_ = c_ * c_.mul_add(-2.0, s);
14 let s = a_ + b_ + c_;
15 let a_ = a_ / s;
16 let b_ = b_ / s;
17 let c_ = c_ / s;
18 let center = a * a_ + b * b_ + c * c_;
19
20 Circle::new(center, (center - a).abs())
21}