ich will mit hilfe des tkinter moduls einen Kreis um die 3 Spitzen eines Dreiecks zeichnen. Wie geht das??
hier mein code:
Code: Alles auswählen
from Tkinter import *
from math import *
blatt = Canvas(width=800,height=800,bg='white')
blatt.pack()
#Eingaben
x1=input("x-Koordinate von Punkt A")
y1=input("Y-Koordinate von Punkt A")
x2=input("x-Koordinate von Punkt B")
y2=input("Y-Koordinate von Punkt B")
x3=input("x-Koordinate von Punkt C")
y3=input("Y-Koordinate von Punkt C")
#Dreieck
ab=blatt.create_line(x1,y1,x2,y2)
bc=blatt.create_line(x2,y2,x3,y3)
ca=blatt.create_line(x3,y3,x1,y1)
#Mittelpunkte
def mitte(c,d):
mittelwert=(c+d)/2.0
return mittelwert
#Steigung
def steigung(a1,b1,a2,b2):
steigung = (1.0*b2-b1)/(a2-a1)
return steigung
#Y-Abschnitt
def y1bschnitt(x,y,m):
abschnitt=1.0*y-m*x
return abschnitt
#Mittelsenkrechte berechnen
def gibMittelsenkrechte(xa,ya,xb,yb):
global msenkrechte
global bsenkrechte
if ya==yb:# if paralel x:
xm=mitte(xa,xb)
print "-----------------------------------------------------"
print 'Die Mittelsenkrechte hat die Gleichung x=', xm
strecke=blatt.create_line(xm,0,xm,400)
elif xa==xb:#if paralel y:
ym=mitte(ya,yb)
print "-----------------------------------------------------"
print 'Die Mittelsenkrechte hat die Gleichung y=', ym
strecke=blatt.create_line(0, ym, 400, ym)
else:# andere:
xm=mitte(xa,xb)
ym=mitte(ya,yb)
mstrecke=steigung (xa,ya,xb,yb)
msenkrechte=-1.0/mstrecke
bsenkrechte=yAbschnitt(xm,ym,msenkrechte)
print "-----------------------------------------------------"
print 'Die Mittelsenkrechte hat die Gleichung y=',msenkrechte, '*x+',bsenkrechte
strecke=blatt.create_line(xm+800,msenkrechte*(xm+800)+bsenkrechte,xm-800,msenkrechte*(xm-800)+bsenkrechte)
#m+b
m=steigung(x1,y1,x3,y3)
b=y1bschnitt(x1,y1,m)
#Mittelsenkrechten:
def testDreieck():
if x1==x2 and x2==x3:#alle 3 paralel
print 'Das ist kein Dreieck!'
else:#ok
m=steigung(x1,y1,x3,y3)
b=yAbschnitt(x1,y1,m)
if y2==m*x2+b:
print 'Das ist kein Dreieck!'
else:
gibMittelsenkrechte(x1,y1,x2,y2)
ms1=msenkrechte
bs1=bsenkrechte
gibMittelsenkrechte(x1,y1,x3,y3)
ms2=msenkrechte
bs2=bsenkrechte
gibMittelsenkrechte(x2,y2,x3,y3)
xs=(bs1-bs2)/(ms1-ms2)
ys=ms1*xs+bs1
#Scheitelpunkte
testDreieck()
print "----------------------------------------------------"
print "Scheitelpunkt(x)=",xs,"Scheitelpunkt(y)=",ys
#Kreis
#1.Abstand von Scheitelpkt zu A
radius=sqrt(((ys-y1)*(ys-y1))+((xs-x1)*(xs-x1)))

Mfg