Abstands Berechnung in 2D/3D Bereich

Longor1996

Mitglied
Hallo alle zusammen!
Ich habe keine Ahnung von Trigenomotrie! (Bin erst 15 :'D )
Ich will folgendes Wissen:

Wie gross ist der abstand zwischen Punkt a und b?
Eigentlich einfach...wären die Punkte nur im Plusbereich.
Aber eben dass sind sie nicht! Ich habe schon hunderte versuche gemacht und nichts hat geklappt! Google hat mir nur mit Formeln weitergeholfen die im Plusbereich Funktionieren.

(PS: Ich habe eine sqrt(Double d) Funktion der man auch Negative werte geben kann!)

mfg Longor1996
 
Das ist ganz einfach. Gehört zwar eigentlich nicht in ein Programmierforum, sondern eher in ein Matheforum, aber ich helfe gerne.

Edit: Im vorhinein, das ganze mit den negativen Werten ist kein Problem, da im Satz des Pythagoras quadiert wird. Hat man also eine geative Zahl, z.B. -5 und quadriert diese, so ergbit sich dennoch 25, da minus mal minus ja bekanntlich plus ist.

Erstmal für 2D:
Das kannst du mit dem Satz des Pythagoras ausrechnen. Das ist es gänzlich egal ob die Punkte positiv oder negativ sind. Mit dem Satz des Pythagoras kannst du ja die Hypothenuse eines rechtwinkligen Dreiecks ausrechnen. Stell dir einfach mal vor, dass die Punkte zwischen denen du die Entfernung berechnen willst der Anfangs, bzw. Endpunkt der Hypothenuse sind. Sagen wir z.B. du hast die Punkte P1(-2/3) und P2(4/1), dann berechnest du zuerst die Differenz auf der x-Achse (die erste Kathete im rechtwinkligen Dreieck), also -2 - 4 = -6 und dann die Differenz auf der y-Achse (die zweite Kathete im rechtwinkligen Dreieck), also 3 - 1 = 2. Und dann kannst du schon die Entfernung zwischen den beiden Punkten berechnen:
c² = a² + b²
c² = (-6)² + 2²
c² = 36 + 4 = 40 |Wurzel
c = 6,32


Nun zu 3D:
Da geht das ganz ähnlich. Erweitern wir unsere Punkte aus der zweidimensionalen Ebene mal in Punkte im dreidimensionalen Raum:
P1(-2/3/-5), P2(4/1/7)
Sagen wir d sei der Abstand zwischen denn Punkten dann gilt (ähnlich wie in der 2D-Ebene)folgendes:

d² = a² + b² + c²
d² = (-2 - 4)² + (3 - 1)² + (-5 - 7)²
d² = (-6)² + 2² + (-12)²
d² = 36 + 4 + 144
d² = 184 |Wurzel
d = 13,56
 
Zuletzt bearbeitet:
Danke! So Funktioniert das...(Muss noch TestProgramm Schreiben!)

Edit:
Ich hab Programmiertechnische Probleme :'D
Und ich weiss nicht was eine Hypotenuse ist!

mfg Longor1996
 
Zuletzt bearbeitet:
Dann zeig am besten was du programmiert hast und wo du nicht weiterkommst, dann koennen wir dir dabei auch helfen :)

Edit: Was eine Hypotenuse ist
 
Zuletzt bearbeitet:
Java:
public static float distanceBetween(Point p1, Point p2)
    {
		
		
        return 0f;
    }

Ich komm kein bisschen weiter...ich bin echt zu doof für komplexe Mathematik!
Was ist nochmal a,b,c Quadrat? (Welche Zahlen muss ich nehmen um die zu bilden?)
 
Zuletzt bearbeitet:
Uebernimm doch mal das Beispiel von Oben
Und Code bitte immer in Code bzw Java-Tags posten.

Und nein du bist nicht zu doof, du musst dich nur damit auseinander setzen. Schreib Pseudocode wenn du nicht weiterkommst.
 
Oh man bin ich doof und erkenne den Unterschied zwischen dem Beispiel und der Formel nicht! :confused:

d² = (-2 - 4)² + (3 - 1)² + (-5 - 7)²
d² = (-6)² + 2² + (-12)²
d² = 36 + 4 + 144
d² = 184 |Wurzel
d = 13,56

Java:
d = ((p1.x - p2.x)*(p1.x - p2.x))+((p1.y - p2.y)*(p1.y - p2.y))+((p1.z - p2.z)*(p1.z - p2.z));

Ich denk mal so bildet man das Quadrat dingens :D
 
Zuletzt bearbeitet:
Teste es doch einfach mal mit den Zahlen aus dem beispiel und schau ob das Ergebnis das selbe ist
 
Test:
Java:
Point p1 = new Point(this,0f,0f,0f);
Point p2 = new Point(this,1f,1f,1f);

println("Abstand = " + Point.distanceBetween(p1, p2));

Ausgabe 'Abstand = 1.7320508'

Stimmt das? Kann doch Irgendwie nicht sein...

Edit:
Hab das Bespiel getestet!
Java:
Point p1 = new Point(this,-2f,3f,-5f);
Point p2 = new Point(this,4f,1f,7f);

Ausgabe war 'Abstand = 13.56466'

Es funtioniert :D
Thx!
 
Zuletzt bearbeitet:
Zurück