Hallo Humpanickel,
Humpanickel hat geschrieben:
Ich stelle mal mein Beispiel dar:
id_Objekt1=canvas.create_polygon (100, 200)
id_Objekt2=canvas.create_polygon (50, 150)
wofür soll dieses Beispiel repräsentativ sein? Für Daten, die Du so in dieser Form hast, oder wolltest Du damit einfach ausdrücken, dass Du zwei Punkte hast, deren Abstand Du berechnen möchtest?
BlackJack spielte darauf an, dass die Polygonfiguren bzw. ihre Daten irgendwo her kommen (z.B. eine Liste von Ausgangskoordinaten) und dass es unnötiger Aufwand wäre, erst Polygonfiguren mit den Daten zu zeichnen - zumal ein Punkt pro Polygonfigur gar nichts bringt, wie BJ schon sagte, oder siehst Du damit etwas auf dem Schirm?
Wahrscheinlich meintest Du sowas?:
Code: Alles auswählen
l = [(100, 200), (50, 150)]
id_Objekt0 = c.create_line(l)
In der Ausgangsliste findest Du bereits die x-y-Paare.
Wenn es Dir darum geht, eine Liste in Paare zu trennen, kannst Du die Standardfunktion zip mit (Listen-)Slices verwenden:
Code: Alles auswählen
>>> l = [100, 200, 50, 150]
>>> l_pairs = zip(l[::2], l[1::2])
>>> print l_pairs
[(100, 200), (50, 150)]
Auch hier kann ich BlackJack nur zustimmen, dass Du Dich als erstes zu Listen, aber auch Dictionaries und Tupeln belesen solltest.
Das eigentliche Problem an Deiner Aufgabenstellung ist die Frage, welche Punkte Du miteinander vergleichst. Stell Dir die Eckpunkte eines gleichseitigen Dreiecks mit Seitenlänge 10 cm vor. Zwei der Punkte sind verbunden. Dann ist der Abstand des einzelnen Punktes von den anderen Punkten 10 cm, aber der Abstand zur Strecke als geometrischem Objekt ist kürzer. Solche Abstände im freien Raum genau zu berechnen, ist deutlich aufwändiger als den Pythagoras zu bemühen.
Grüße
sky
Diese Nachricht zersört sich in 5 Sekunden selbst ...