Entfernung messen mit dem Satz des Pythagoras auch in 3D?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Mandalore3142
User
Beiträge: 14
Registriert: Freitag 5. Oktober 2007, 19:13
Wohnort: Bremen
Kontaktdaten:

Hallo alle,
bin neu im Forum und hoffe ich bekomm hier Hilfe. :mrgreen:

Meine Frage, ich hab eine kleine Funktion zum messen der Entfernung zweier Punkte auf einem 2D Koordinatensystem. Und wie könnte mann das für ein 3D Koordinatensystem machen oder gibts da schon ne Funktion für???

Hoffe mir kann jemand helfen, weil ich nicht so recht weis ich das ganze bei 3D angehen sollte. ^^

Code: Alles auswählen

import math

def getDistance(pos1,pos2):
  a = pos1[0]-pos2[0]
  b = pos1[1]-pos2[1]
  result = math.sqrt((a**2)+(b**2))
  return result,int(result)

print getDistance((10,20),(13,14))
MfG Mandalore
BlackJack

Einfach noch ein drittes Element zur Koordinate hinzufügen. Auch da kommt das Quadrat der Differenz als weiterer Summand unter die Wurzel.
Mandalore3142
User
Beiträge: 14
Registriert: Freitag 5. Oktober 2007, 19:13
Wohnort: Bremen
Kontaktdaten:

Toll danke für die schnelle Antwort!!

Code: Alles auswählen

a = pos1[0]-pos2[0]
b = pos1[1]-pos2[1]
c = pos1[2]-pos2[2]
result = math.sqrt((a**2)+(b**2)+(c**2))
------
print getDistance((10,20,20),(13,14,40))
Wenn das so stimmt danke, ich hätte mir da wohl einen viel zu komplizierten Weg ausgedacht.^^

MfG Mandalore
BlackJack

Man kann das ganze etwas generischer schreiben (ungetestet):

Code: Alles auswählen

def distance(pos1, pos2):
    return math.sqrt(sum((a - b)**2 for a, b in zip(pos1, pos2)))
Das funktioniert dann für beide Arten von Koordinaten.
Antworten