Berechnung kleinster Abstand von 2 Strecken
#1
geschrieben 15. November 2010 - 14:40
ich als als HA ein Programm zur Berechnung von 2 Strecken (ACHTUNG: NICHT GERADEN) schreiben.
Ich scheitere allerdings an der grundlegenden Herangehensweise. Kann mir jemand kurz erklären wie man theoretisch den Abstand von 2 Strecken berechnet?
greetz
Anzeige
#2
geschrieben 15. November 2010 - 14:57
Was praktisch aber eine Strecke ist und warum keine Gerade weiß ich nicht.
Normalerweise ist es sehr einfache Mathematik: Koordinatensystem in R2 (x+y Achse) mit Punkt1 und Punkt2. Ansonsten gibt es Geraden (die du nicht willst) und Ebenen (was aber keine Strecken sind).
Oder anders: Was ist eine Strecke und was eine Gerade? Kann man die "Strecke" in Vektoren ausdrücken?
#3
geschrieben 15. November 2010 - 14:59
strecke eben nicht
das ist der unterschied
und ja strecke kann durch einen pkt und einen richtungsvektor dargestellt werden
#4 _EDDP_
geschrieben 15. November 2010 - 15:01
Dieser Beitrag wurde von EDDP bearbeitet: 15. November 2010 - 15:10
#5
geschrieben 15. November 2010 - 15:02
#6
geschrieben 15. November 2010 - 18:26
@skelle: die Programmiersprache wäre hier noch interessant.
Welche weiteren Voragen gab es denn zu der Hausaufgabe?
lg,
Fabi
#7
geschrieben 15. November 2010 - 20:23
wobei es mir wie gesagt nur um die theoret. vorgehensweise geht
#8
geschrieben 15. November 2010 - 20:48
Zitat (Tienchen: 15.11.2010, 15:02)
Das funktioniert nicht, ich mach mal ein Beispiel.
Können, wenn man nur nen Vektor errichtet und je nachdem wo, nicht beide grünen Linien herauskommen und die Längere wäre aber richtig?
Angehängte Datei(en)
-
strecken.pdf (1,99K)
Anzahl der Downloads: 638
Dieser Beitrag wurde von Holger_N bearbeitet: 15. November 2010 - 21:04
#9
geschrieben 16. November 2010 - 08:24
#10
geschrieben 20. November 2010 - 18:17
Zitat (Holger_N: 15.11.2010, 20:48)
Können, wenn man nur nen Vektor errichtet und je nachdem wo, nicht beide grünen Linien herauskommen und die Längere wäre aber richtig?
Nochmal eine Überlegung von mir:
Ich musste unter anderem noch eine Funktion schreiben welche den Abstand eines Punktes zu einer Strecke berechnet - dies habe ich bereits implementiert.
Wenn ich die beiden Endpunkte von Stecke 1 nehme und den Abstand zu Strecke 2 berechne und im Anschluss die beiden Endpunkte der Strecke 2 nehme und den Abstand zu Strecke 1 berechne.
Dann habe ich ja 4 versch Abstände.
Ist der geringste von den 4 Abständen nicht auch automatisch der geringste Abstand von den 2 Strecken?
greetz
#11
geschrieben 21. November 2010 - 15:54
Zitat (skelle: 20.11.2010, 19:17)
Nein,
1. mußt du genau sagen was du berechnen willst 2D/3D
2. Strecken können sich schneiden oder 2 Endpunkte fallen zusammen, dann ist der kürzeste Abstand 0
3. mit den Endpunkten hat das wenig zu tun, im 3D Raum ist die kürzeste Distanz das doppelte Lot(Lot von jeder Strecke aus)
Gruß
Spiderman
#12
geschrieben 21. November 2010 - 15:58
den Fall falls sie sich schneiden bzw falls Endpunkte zusammenfallen muss ich natürlich extra prüfen
ansonsten sollte der von mir beschriebene weg doch aber hinkommen oder?
#13
geschrieben 21. November 2010 - 19:56
Zitat (skelle: 20.11.2010, 19:17)
Ich musste unter anderem noch eine Funktion schreiben welche den Abstand eines Punktes zu einer Strecke berechnet - dies habe ich bereits implementiert.
Und hast du die Funktion auch getestet ?
Das Problem ist das Lot ist der kürzeste Abstand zu einer Geraden, wenn das Lot nicht auf die Strecke trifft (siehe untere grüne Linie), darfst du diesen Abstand aber nicht berücksichtigen.
Teste doch einmal mit:
Strecke 1(x,y): 0,0 - 30,0
Strecke 2(x,y): 10,30 - 20,20
#14
geschrieben 21. November 2010 - 20:04
wenn der schnittpkt nicht auf der geraden liegt, denn ist der nächste punkt halt ein endpunkt von der anderen strecke.
damit kommen wir wieder zu dem wo ich meinte, der kürzeste abstand den von von berechneten abständen
#15
geschrieben 22. November 2010 - 14:54
Zitat (skelle: 20.11.2010, 19:17)
Dann habe ich ja 4 versch Abstände.
Ist der geringste von den 4 Abständen nicht auch automatisch der geringste Abstand von den 2 Strecken?
Ja, sollte so sein.
Wenn das Lot von einem Punkt nicht die Strecke trifft rechnet man von Punkt zu Punkt und nimmt den kleineren Abstand.
Hier mal meine Testpage: http://mitglied.mult...111/index4.html
Bei der Aufgabe oben kommt 20 heraus, weil das Lot von P2 nicht die Strecke P3-P4 trifft, ändert man P4 nach 40,0 kommt P2 zum tragen da das Lot von P2 die Strecke P3-P4 trifft.
Gruß
Spiderman
Dieser Beitrag wurde von Spiderman bearbeitet: 22. November 2010 - 18:07