Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Three Points Circle by MdNowfal
from sympy import *
def checkio(data):
data = list(data)
c1=[int(data[1]),int(data[3])]
c2=[int(data[7]),int(data[9])]
c3=[int(data[13]),int(data[15])]
x, y, z = symbols('x y z',real=True)
rad1 = (x-c1[0])**2+(y-c1[1])**2
rad2 = (x-c2[0])**2+(y-c2[1])**2
rad3 = (x-c3[0])**2+(y-c3[1])**2
p=solve([rad1-rad2,rad1-rad3],(x,y))
rad = ((p[x]-c1[0])**2+(p[y]-c1[1])**2)**(1/2.0)
rad=round(rad,2)
if rad == int(rad):
rad = int(rad)
if sympify(p[x]).is_integer == False:
p[x]=float(p[x])
p[x]=round(p[x], 2)
if sympify(p[y]).is_integer == False:
p[y]=float(p[y])
p[y]=round(p[y], 2)
#print(p,rad)
return '(x-'+str(p[x])+')^2+(y-'+str(p[y])+')^2='+str(rad)+'^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"
Dec. 4, 2017