Hallo meine Lieben
Folgende Problematik:
Ich habe zwei Listen, und in diesen Listen sind Koordinaten gespeichert. Mein Ziel ist es, die minimale Distanz zwischen den Koordinaten (paarweise) zu berechnen und für Distanzen, die beispielsweise <0,005 sind die Koordinaten aus einer der Liste zu löschen. So dass ich am Ende eine Liste habe mit Koordinaten, wo alle Punkte mindestens 0.005 Abstand zu den Koordinaten in der anderen Liste haben. Wie könnte ich das anstellen?
Löschen von bestimmten Werten
Paarweises Vergleichen sind zwei for-schleifen, und fuer jede Koordinate aus der auesseren Schleife musst du einfach nur pruefen, ob sie weitgenug von allen anderen in der zweiten weg ist:
Code: Alles auswählen
filtered_points = []
for point in first_list:
if all(distance(point, second_point) > THRESHOLD for second_point in second_list):
filtered_points.append(point)
- DeaD_EyE
- User
- Beiträge: 1020
- Registriert: Sonntag 19. September 2010, 13:45
- Wohnort: Hagen
- Kontaktdaten:
So in der Art?:Ich habe zwei Listen, und in diesen Listen sind Koordinaten gespeichert.
Code: Alles auswählen
coord1 = [(x1, y1), (x2, y2), ...]
coord1 = [(xx1, yy1), (xx2, yy2), ...]
Dann erzeugst du einfach neue Listen und die Distanz kannst du mit math.dist berechnen.
Wenn die Distanz die Bedingungen erfüllt, die Koordinaten zur den neuen Listen hinzufügen und ggf. auch die Distanz in eine andere Liste packen.
Code: Alles auswählen
import math
# nützliches
# math.hypot und math.dist
coord1 = [(3, 5), (10, 15), (1, 2)]
coord2 = [(10, 15), (10, 15), (10, 2)]
distances = []
coord1_new = []
coord2_new = []
for p1, p2 in zip(coord1, coord2):
distance = math.dist(p1, p2)
if distance > 0.005:
coord1_new.append(p1)
coord2_new.append(p2)
distances.append(distance)
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server