Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Uncategorized category for Three Points Circle by UFO665
def distance(x1, y1, x2, y2):
return ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
def checkio(data):
p1, p2, p3 = eval(data)
x1, y1 = p1
x2, y2 = p2
x3, y3 = p3
den = float(2 * ((x1 - x2) * (y3 - y1) - (y1 - y2) * (x3 - x1)))
x0 = round(-((y1 - y2) * (x3 ** 2 + y3 ** 2) + (y2 - y3) * (x1 ** 2 + y1 ** 2) + (y3 - y1) * (x2 ** 2 + y2 ** 2)) / den, 2)
y0 = round(((x1 - x2) * (x3 ** 2 + y3 ** 2) + (x2 - x3) * (x1 ** 2 + y1 ** 2) + (x3 - x1) * (x2 ** 2 + y2 ** 2)) / den, 2)
a, b, c = distance(x1, y1, x2, y2), distance(x1, y1, x3, y3), distance(x2, y2, x3, y3)
p = (a + b + c) / 2.0
r = round(a * b * c / 4.0 / (p * (p - a) * (p - b) * (p - c)) ** 0.5, 2)
return "(x-{:g})^2+(y-{:g})^2={:g}^2".format(x0, y0, r)
March 9, 2016