Koordinaten eines Polygons verändern

Fragen zu Tkinter.
Antworten
Papp Nase
User
Beiträge: 139
Registriert: Dienstag 11. März 2014, 15:12

Hallo,

ich möchte gerne die Koordinaten eines Polygons ändern. Leider weis ich nicht, wie ich auf die Koordinaten zugreifen kann. Ich habe es so probiert,

Code: Alles auswählen

try:
    import tkinter as tk
except:
    import Tkinter as tk
    


root = tk.Tk()

canvas = tk.Canvas(root)

p_1 = (30, 30)
p_2 = (30, 100)
p_3 = (100, 30)

polygon = canvas.create_polygon(p_1, p_2, p_3)

canvas.pack()

p_1_neu = (50, 50)

canvas.coords(polygon, p_1_neu, p_2, p_3)

root.mainloop()
aber es funktioniert nicht.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

canvas.coords will einzelne Werte haben, nicht Tupel.

Code: Alles auswählen

canvas.coords(polygon, p_1_neu[0], p_1_neu[1], p_2[0], p_2[1], p_3[0], p_3[1])
Praktischer wäre es. wenn du die Punkte in einer Liste hättest. Bei Einsatz der passenden Funktion aus itertools ist die Anzahl der Parameter beliebig.

Code: Alles auswählen

points = [p_1_neu, p_2, p_3]
canvas.coords(polygon, *itertools.chain.from_iterable(points))
Ich habe übrigens noch nie mit tkinter gearbeitet, aber das war nun wirklich leicht herauszufinden ...
Antworten