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 vvm70
def checkio(data):
x1, y1, x2, y2, x3, y3 = [int(x) for x in data if x.isdigit()]
if x1 == x2: x1, y1, x3, y3 = x3, y3, x1, y1
g1, g2, g3 = (x1**2 + y1**2), (x2**2 + y2**2), (x3**2 + y3**2)
y0 = ((g1 - g2)*(x2 - x3) - (g2 - g3)*(x1 - x2))/2/((y1 -y2)*(x2 - x3) - (y2 - y3)*(x1 - x2))
x0 = (g1 - g2 - 2*y0*(y1 - y2))/2/(x1 - x2)
r = round(((x1 - x0)**2 + (y1 - y0)**2)**0.5, 2)
x0 = int(x0) if x0 == int(x0) else round(x0, 2)
y0 = int(y0) if y0 == int(y0) else round(y0, 2)
if r == int(r): r = int(r)
return f"(x-{x0})^2+(y-{y0})^2={r}^2"
#These "asserts" using only for self-checking and not necessary for auto-testing
if __name__ == '__main__':
assert checkio("(2,2),(6,2),(2,6)") == "(x-4)^2+(y-4)^2=2.83^2"
assert checkio("(3,7),(6,9),(9,7)") == "(x-6)^2+(y-5.75)^2=3.25^2"
Jan. 20, 2021