WinFuture-Forum.de: Berechnung kleinster Abstand von 2 Strecken - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Berechnung kleinster Abstand von 2 Strecken


#1 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 15. November 2010 - 14:40

Hallo
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
0

Anzeige



#2 Mitglied ist offline   Tienchen 

  • Gruppe: aktive Mitglieder
  • Beiträge: 424
  • Beigetreten: 09. März 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 15. November 2010 - 14:57

Theoretisch: Du hast zwei Punkte und vergleichst sie.
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?
0

#3 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 15. November 2010 - 14:59

gerade geht ins unendliche
strecke eben nicht

das ist der unterschied

und ja strecke kann durch einen pkt und einen richtungsvektor dargestellt werden
0

#4 _EDDP_

  • Gruppe: Gäste

geschrieben 15. November 2010 - 15:01

Eine Strecke hat einen Anfangs- und einen Endpunkt, eine Gerade nicht. Strecken müssen sich im Gegensatz zu Geraden nicht schneiden, wenn sie nicht parallel zueinander verlaufen. Das gilt natürlich nur in einer Ebene. In einem Raum müssen sich Geraden auch nicht schneiden, wenn sie nicht parallel zueinander verlaufen...

Dieser Beitrag wurde von EDDP bearbeitet: 15. November 2010 - 15:10

0

#5 Mitglied ist offline   Tienchen 

  • Gruppe: aktive Mitglieder
  • Beiträge: 424
  • Beigetreten: 09. März 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 15. November 2010 - 15:02

Dann ist es doch einfach: Vektor auf Strecke 1 errichten, Lot dazu und schauen, wann Strecke 2 schneidet. In Mathe solltet ihr das ja bestimmt durchgenommen haben...
0

#6 Mitglied ist offline   Fabi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.958
  • Beigetreten: 30. August 04
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 15. November 2010 - 18:26

Wobei hier auch noch zu sagen ist, dass sich der Abstand der Strecken nicht in jedem Punkt gleich sein muss, da wir uns ja im 3-Dimensinalen Raum befinden.

@skelle: die Programmiersprache wäre hier noch interessant.
Welche weiteren Voragen gab es denn zu der Hausaufgabe?

lg,
Fabi
0

#7 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 15. November 2010 - 20:23

soll in c++ gemacht werden.
wobei es mir wie gesagt nur um die theoret. vorgehensweise geht
0

#8 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.170
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 15. November 2010 - 20:48

 Zitat (Tienchen: 15.11.2010, 15:02)

Dann ist es doch einfach: Vektor auf Strecke 1 errichten, Lot dazu und schauen, wann Strecke 2 schneidet. In Mathe solltet ihr das ja bestimmt durchgenommen haben...



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)


Dieser Beitrag wurde von Holger_N bearbeitet: 15. November 2010 - 21:04

Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#9 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 16. November 2010 - 08:24

 Zitat (Holger_N: 15.11.2010, 20:48)

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?


ja ich glaube der ansatz könnte funktionieren :(
danke
0

#10 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 20. November 2010 - 18:17

 Zitat (Holger_N: 15.11.2010, 20:48)

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?


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
0

#11 Mitglied ist offline   Spiderman 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.675
  • Beigetreten: 23. November 06
  • Reputation: 26

geschrieben 21. November 2010 - 15:54

 Zitat (skelle: 20.11.2010, 19:17)

Ist der geringste von den 4 Abständen nicht auch automatisch der geringste Abstand von den 2 Strecken?

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
0

#12 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 21. November 2010 - 15:58

geht nur um den 2D Raum
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?
0

#13 Mitglied ist offline   Spiderman 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.675
  • Beigetreten: 23. November 06
  • Reputation: 26

geschrieben 21. November 2010 - 19:56

 Zitat (skelle: 20.11.2010, 19:17)

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.

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
0

#14 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 21. November 2010 - 20:04

ja klar
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
0

#15 Mitglied ist offline   Spiderman 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.675
  • Beigetreten: 23. November 06
  • Reputation: 26

geschrieben 22. November 2010 - 14:54

 Zitat (skelle: 20.11.2010, 19:17)

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?

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

0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0