外接円
解き方
3つの点が与えられるので、それらを使い三角形の三辺を求める。 外接円の半径は余弦定理と正弦定理より求めることができる。 外心は円の方程式を利用して求める。
円の方程式はx2+y2+lx+my+n=0より、lx+my+n=-(x2+y2)と表すことができる。
これに3頂点を代入して、l, mを求める。
コード(python)
n = int(input()) for _ in range(n): x1, y1, x2, y2, x3, y3 = map(float, input().split()) a = pow((x3-x2) ** 2 + (y3-y2) ** 2, 0.5) b = pow((x3-x1) ** 2 + (y3-y1) ** 2, 0.5) c = pow((x1-x2) ** 2 + (y1-y2) ** 2, 0.5) cosA = (b**2 + c**2 - a**2) / (2*b*c) sinA = pow(1 - cosA**2, 0.5) R = a / sinA / 2 s = (a+b+c) / 2 S = pow(s*(s-a)*(s-b)*) a, b, c = x1-x2, y1-y2, -(x1**2 + y1**2) + (x2**2 + y2**2) d, e, f = x2-x3, y2-y3, -(x2**2 + y2**2) + (x3**2 + y3**2) l = (c*e - b*f) / (e*a - b*d) m = (c*d - a*f) / (b*d - a*e) l, m = l*-0.5, m*-0.5 print("{:.3f} {:.3f} {:.3f}".format(l, m, R))