Ich bräuchte mal eine Empfehlung:
Es geht darum Punkte auf einem Canvas ´´elegant`` zu verbinden.
Bis her kenne ich nur turtle.
Allerdings weiß ich, dass es noch xturtle und auch noch frog gibt
Hier mal kurz mein Ansatz:
Code: Alles auswählen
import Tkinter as tk
import turtle
class DreieckZeichnen:
def __init__(self, canvas, cw, ch):
#cw=int(canvas.cget('width'))
#ch=int(canvas.cget('heigh'))
a=(min(cw, ch))/3
self.canv=canvas
self.punkte=[]
self.canvaskoordinaten={} #punkt : (canvx, canvy)
#self.tur=turtle.RawPen(self.canv)
self.grenze=self.canv.create_rectangle(a, a, cw-a, ch-a, fill='grey95', \
outline='grey95', disabledfill='white')
self.canv.tag_bind(self.grenze, '<Button-1>', self.add_point)
def add_point(self, event):
e=event.x, event.y
p=self.canv.create_oval(e[0]-3, e[1]-3, e[0]+3, e[1]+3, fill='green')
self.punkte.append(p)
self.canvaskoordinaten[p]=e
if len(self.punkte) == 2:
self.canv.itemconfig(self.grenze, state='disable')
self.connecting()
def connecting(self):
c1=self.canvaskoordinaten[self.punkte[0]]
c2=self.canvaskoordinaten[self.punkte[1]]
self.canv.create_line(c1, c2)
if __name__ == '__main__':
win=tk.Tk()
canvas=tk.Canvas(win, width=500, height=500, bg='white')
canvas.pack(padx=10, pady=10)
test=DreieckZeichnen(canvas, 500, 500)
win.mainloop()