src/geo2d/tcenter/o/lib.hpp
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | #pragma once | ||
| 2 | |||
| 3 | #include "../../ds/t/lib.hpp" | ||
| 4 | #include "../../ins/ll/lib.hpp" | ||
| 5 | |||
| 6 | namespace tifa_libs { | ||
| 7 | |||
| 8 | // radius of circumscribed circle | ||
| 9 | template <class FP> | ||
| 10 | 47122 | CEXP FP radius_O(triangle<FP> CR t) NE { return dist_PP(t.B, t.C) / std::sin(abs(ang_PP(t.B - t.A, t.C - t.A))) / 2; } | |
| 11 | // circumcenter (X3) | ||
| 12 | template <class FP> | ||
| 13 | 61059 | CEXP point<FP> center_O(triangle<FP> CR t) NE { | |
| 14 | // auto [A, B, C] = t.angles(); | ||
| 15 | // return t.trilinears(std::cos(A), std::cos(B), std::cos(C)); | ||
| 16 | 61059 | const point<FP> p1 = mid_point(t.B, t.C), p2 = mid_point(t.C, t.A); | |
| 17 | 61059 | return ins_LL<FP>({p1, p1 + (t.B - t.C).do_rot90()}, {p2, p2 + (t.C - t.A).do_rot90()}); | |
| 18 | } | ||
| 19 | |||
| 20 | } // namespace tifa_libs | ||
| 21 |