Construcción 3
import time
import math
def apolonio(A,B,C):
a=Distance(B,C)
b=Distance(A,C)
c=Distance(A,B)
r1=(-a+b+c)/2
r2=(a-b+c)/2
r3=(a+b-c)/2
C1=Circle(A,r1)
C1.opacity=0
time.sleep(0.01)
C2=Circle(B,r2)
C2.opacity=0
time.sleep(0.01)
C3=Circle(C,r3)
C3.opacity=0
time.sleep(0.01)
#Dibujamos la circunferencia tangente
#radio de la circunferencia tangente
r=(r1*r2*r3)/(r1*r2+r2*r3+r1*r3+2*math.sqrt(r1*r2*r3*(r1+r2+r3)))
#centro de la circunferencia tangente
a0=2*(A.x-B.x)
a1=2*(A.x-C.x)
b0=2*(A.y-B.y)
b1=2*(A.y-C.y)
c0=2*(r1-r2)
c1=2*(r1-r3)
d0=(A.x**2+A.y**2-r1**2)-(B.x**2+B.y**2-r2**2)
d1=(A.x**2+A.y**2-r1**2)-(C.x**2+C.y**2-r3**2)
x=(b1*d0-b0*d1-b1*c0*r+b0*c1*r)/(a0*b1-b0*a1)
y=(-a1*d0+a0*d1+a1*c0*r-a0*c1*r)/(a0*b1-b0*a1)
S=Point(x,y,is_visible=False)
C4=Circle(S,r)
C4.opacity=0
time.sleep(0.01)
lista.append(S)
time.sleep(1)
def apolonioapolonio(A,B,C,D):
apolonio(D,A,B)
time.sleep(0.01)
apolonio(D,B,C)
time.sleep(0.01)
apolonio(D,C,A)
time.sleep(0.01)
#informamos en que consiste la actividad
#Dibujamos una circunferencia para que el fondo sea blanco
P=Point(0,0,is_visible=False)
C=Circle(P,30)
C.color='white'
C.opacity=1
time.sleep(0.1)
#introducimos las coordenadas de los puntos
xA= int(input('Coordenada x de A:'))
time.sleep(1)
yA= int(input('Coordenada y de A:'))
time.sleep(1)
xB= int(input('Coordenada x de B:'))
time.sleep(1)
yB= int(input('Coordenada y de B:'))
time.sleep(1)
xC= int(input('Coordenada x de C:'))
time.sleep(1)
yC= int(input('Coordenada y de C:'))
time.sleep(1)
#Dibujamos los puntos y el triángulo y las circunferencias tangentes
A=Point(xA,yA,is_visible=False)
B=Point(xB,yB,is_visible=False)
C=Point(xC,yC,is_visible=False)
lista=[A,B,C]
apolonio(lista[0],lista[1],lista[2])
apolonioapolonio(lista[0],lista[1],lista[2],lista[3])
apolonioapolonio(lista[3],lista[0],lista[1],lista[4])
apolonioapolonio(lista[3],lista[1],lista[2],lista[5])
apolonioapolonio(lista[3],lista[2],lista[0],lista[6])
apolonioapolonio(lista[4],lista[3],lista[0],lista[7])
apolonioapolonio(lista[4],lista[0],lista[1],lista[8])
apolonioapolonio(lista[4],lista[3],lista[1],lista[9])
apolonioapolonio(lista[5],lista[3],lista[1],lista[10])
apolonioapolonio(lista[5],lista[1],lista[2],lista[11])
apolonioapolonio(lista[5],lista[2],lista[3],lista[12])
apolonioapolonio(lista[6],lista[3],lista[2],lista[13])
apolonioapolonio(lista[6],lista[2],lista[0],lista[14])
apolonioapolonio(lista[6],lista[0],lista[3],lista[15])