ジオメトリテンプレートの計算

1116 ワード

ここには、後で自分で検索し、更新し続けるために便利な計算ジオメトリテンプレートを記録します.
ポイントデータ型
struct Point{

    double x, y;  

};

 
3点を知っていて、外部の円心を求めます
Point Cross( Point A, Point B, Point c ){

    Point o;

    double a1 = B.x - A.x, b1 = B.y - A.y, c1 = a1*a1+b1*b1;

    double a2 = C.x - A.x, b2 = C.y - A.y, c2 = a2*a2+b2*b2;

    double d = a1 * b2 - a2 * b1; // det( AB, AC )

    o.x = A.x + (c1 * b2 - c2 * b1) / d;

    o.y = A.y + (a1 * c2 - a2 * c1) / d;

    return o;

}