hyporo-cpp/source/hpr/geometry/triangle.hpp

15 lines
356 B
C++

#include "../math.hpp"
namespace hpr::geometry
{
vec2 circumCentre(vec2 p1, vec2 p2, vec2 p3)
{
vec2 pb1 {(p1 + p2) * 0.5};
vec2 pb2 {(p2 + p3) * 0.5};
scalar s1 = (p2[1] - p1[1]) / (p2[0] - p1[0]);
scalar s2 = (p3[1] - p2[1]) / (p3[0] - p2[0]);
return vec2(pb1[0] + s1 * pb1[1], pb2[0] + s2 * pb2[1]) * mat2(1, s1, 1, s2).inv();
}
}