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 PawelBubak
from sympy import *
from sympy.geometry import *
def checkio(data):
x = data.index(',')
punkty = []
for i in data:
if i != '(' and i != ')' and i != ',':
punkty.append(int(i))
a = Point(punkty[0],punkty[1])
b = Point(punkty[2],punkty[3])
c = Point(punkty[4],punkty[5])
x = (b[0]**2*c[1]+b[1]**2*c[1]-a[0]**2*c[1]+a[0]**2*b[1]-a[1]**2*c[1]+a[1]**2*b[1]+a[1]*c[0]**2+a[1]*c[1]**2-a[1]*b[0]**2-a[1]*b[1]**2-b[1]*c[0]**2-b[1]*c[1]**2)/(2*(a[1]*c[0]-a[1]*b[0]-b[1]*c[0]-c[1]*a[0]+c[1]*b[0]+b[1]*a[0]))
y = ((-a[0]*c[0]**2)-(a[0]*c[1]**2)+(a[0]*b[0]**2)+(a[0]*b[1]**2)+(b[0]*c[0]**2)+(b[0]*c[1]**2)-(b[0]**2*c[0])-(b[1]**2*c[0])+(a[0]**2*c[0])-(a[0]**2*b[0])+(a[1]**2*c[0])-(a[1]**2*b[0]))/(2*((a[1]*c[0])-(a[1]*b[0])-(b[1]*c[0])-(c[1]*a[0])+(c[1]*b[0])+(b[1]*a[0])))
r = (a[0]-x)**2+(a[1]-y)**2
wynik = round(float(sqrt(r)),2)
if type(x) == Rational:
x = round(float(x),2)
if type(y) == Rational:
y = round(float(y),2)
t = wynik
if '.0' in str(wynik):
q = len(str(wynik))
wynik = str(wynik)
tab=[]
for i in range(wynik.index('.'), q):
tab.append(wynik[i])
if len(tab) == 2:
wynik = int(t)
return "(x-"+str(x)+")^2+(y-"+str(y)+")^2="+str(wynik)+"^2"
Nov. 26, 2016