haar_lib/geom/
incircle.rs

1//! 三角形の内接円
2
3use crate::geom::*;
4
5/// 三角形(△abc)の内接円を求める
6pub fn incircle(a: Vector, b: Vector, c: Vector) -> Circle {
7    let a_ = (b - c).abs();
8    let b_ = (a - c).abs();
9    let c_ = (a - b).abs();
10    let s = (a_ + b_ + c_) / 2.0;
11
12    Circle::new(
13        (a * a_ + b * b_ + c * c_) / (a_ + b_ + c_),
14        ((s - a_) * (s - b_) * (s - c_) / s).sqrt(),
15    )
16}