Koordinatensystem: Strecke/Entfernung

Freak

NULL
Hallo Leute!
Ich habe folgendes Problem:

In einem Koordinatensystem gibt es zwei Positionen (50:150 und 400:180).
Frage 1:
Wie kann ich nun die kürzeste Strecke zwischen diesen beiden Punkten berechnen (siehe Bild im Anhang)?

Frage 2:
Und wie kann ich dann die Pixel/Koordinatenfelder, die diese Strecke braucht zählen?

Ich hoffe ich konnte mein Problem verständlich schildern
und bin dankbar für jede hilfreche Antwort.
 

Anhänge

  • 26730attachment.png
    26730attachment.png
    476 Bytes · Aufrufe: 47
Das ist eigentlich reine Geometrie: Die kürzeste Strecke zwischen zwei Punkten ist eine Gerade. Falls mich meine Vektorrechnungskenntnisse nicht täuschen, kann die Strecke wie folgt berechnet werden::
Code:
    |? 400 ? ?  50 ?|   |? 350 ?|
a = |?     ?-?     ?| = |?     ?| = ?(350² + 30²) ? 351
    |? 180 ? ? 150 ?|   |?  30 ?|
 
@Gumbo: Alles richtig ;)

@Marsmann: Aus der Rechnung kannst du dir doch schnell ein Script schreiben.
1. Subtraktion der x Koordinaten
2. Subtraktion der y Koordinaten
3. Addition der quadrierten Differenzen
4. Wurzel ziehen
Schon hast du den Abstand...

Denke, daraus sollte sich schnel ein Script schreiben lassen...
Versuchs am besten erst einmal selber und frag, wenn du Hilfe brauchst...

PS: Erst diese WOche eine Klausur geschrieben über das Thema...grml ;)
 
PHP:
//Positionen:
$pos1 = array("x"=>"50","y"=>"150");
$pos2 = array("x"=>"400","y"=>"180");

//Subtraktion der X- un Y-Werte:
$x = $pos1["x"] - $pos2["x"];
$y = $pos1["y"] - $pos2["y"];

//Addition der quadrierten Ergebnisse:
$xy = bcpow($x, 2) + bcpow($y, 2);

//Wurzel aus der Addition:
$erg = pow($xy, 0.5);

//Rundung der Ergebnisses
$erg = round($erg);

//Ausgabe der Entfernung:
echo $erg;

Und? Richtig so?
Oder gibt's noch Optimierungsvorschläge?
 
offensichlich richtig...


Und nun zu meiner zweiten Frage:


Wie kann ich diese Strecke nun Pixel um Pixel entlanggehen?

Das heißt:
Wenn ich angebe, es sollen nur 10 Pixel der Strecke entlanggegangen sein,
wir die Position des 10. Pixels angegeben.
So hat man also nur einen Teil der Strecke bisher zurückgelegt.

Weiß jemand, wie man das berechnen kann?
 
Zuletzt bearbeitet:
Zurück