Seite 1 von 1

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

Verfasst: Freitag 5. Oktober 2007, 19:28
von Mandalore3142
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

Verfasst: Freitag 5. Oktober 2007, 20:01
von BlackJack
Einfach noch ein drittes Element zur Koordinate hinzufügen. Auch da kommt das Quadrat der Differenz als weiterer Summand unter die Wurzel.

Verfasst: Freitag 5. Oktober 2007, 20:08
von Mandalore3142
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

Verfasst: Freitag 5. Oktober 2007, 20:33
von 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.