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_ * (s - a_ * 2.0);
12 let b_ = b_ * (s - b_ * 2.0);
13 let c_ = c_ * (s - c_ * 2.0);
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}