WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Schnittstelle zweier Graphen (True/ false)

 

hamva
Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.08.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2018, 19:22     Titel: Schnittstelle zweier Graphen (True/ false)
  Antworten mit Zitat      
Hallo zusammen,

ich hänge seit Tagen an einem Problem und komme auf keinen grünen Zweig, weil ich weder die Umsetzung meiner aktuellen Idee bewerkstelligen kann, noch weiß ich, ob ein anderer Ansatz nicht evtl. zielführender wäre.

Grundsätzlich habe ich folgendes Problem:
Ich habe Längen- und Breitengrade in jeweils einem Vektor gespeichert und lasse mir diese als Streckenverlauf plotten. Nun habe ich zusätzliche Koordinaten (als Längen- und Breitenvektoren) und möchte herausfinden, ob sich diese in einem bestimmten Abstand zu meinem Streckenverlauf befinden oder eben weiter davon entfernt sind.

Meine aktuelle Idee war es, um jedes Element (das geprüft werden soll), einen Kreis mit Radius r zu zeichnen und dann zu prüfen, ob ein Schnittpunkt exisitiert oder nicht. Die Koordinaten des Schnittpunktes spielen dabei keine Rolle. Ich möchte lediglich wissen, ob sie sich schneiden (Element befindet sich im entsprechenden Abstand zur Strecke) oder nicht.

So habe ich für jedes Element i einen Kreis darum gezeichnet.
Code:

    th = 0:pi/50:2*pi;
    xunit = r * cos(th) + Lights_Lon(i);
    yunit = r * sin(th) + Lights_Lat(i);
    circle(i) = plot(xunit, yunit);
    hold on
 


Nach unzähligen Foren und Suchen weiß ich nun nicht, wie ich hier eine Prüfung auf einen eventuellen Schnittpunkt mit meinen Vektoren (Längen- und Breitengrade) durchführen kann.

Ich danke euch für eure Ideen und Hilfe!
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.497
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.08.2018, 20:41     Titel:
  Antworten mit Zitat      
Hallo,

erste, recht einfache Idee:
den Abstand aller Punkte der ersten Kurve zu allen Punkten der zweiten Kurve berechnen. Damit kannst du den minimalen Abstand der ersten Kurve zu jedem Punkt der zweiten Kurve bestimmen.

Problematisch wäre lediglich, wenn es sehr viele Punkte sind (z.B. > 10000) oder wenn die Punkte relativ weit voneinander weg sind, so dass Zwischenpunkte deutlich näher sind.

Der Titel passt m.E. übrigens nicht zur Beschreibung. An der habe ich mich orientiert.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
hamva
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.08.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.08.2018, 22:06     Titel:
  Antworten mit Zitat      
Hallo,

Danke dir für deine Idee. Tatsächlich hatte ich diese auch bereits, allerdings habe ich hierbei folgende Probleme:

Die Abstandbereichnung habe ich zunächst für jeden interessanten Punkt (ohne Kreis) zu jedem Punkt des Streckenverlaufs durchgeführt. Da die Punkte auf dem Streckenverlauf aber teilweise sehr weit auseinander liegen, kann der Abstand sehr groß sein, obwohl der eigentlich kürzeste Abstand zur Strecke viel geringer ist. Man müsste also durch eine sehr komplizierte Berechnung den kürzesten Abstand zur Strecke finden.

Zweites Problem: wenn ich mit meinem oben Beschriebenen Code eine Kreis um jeden Punkt zeichne, dann erhalte ich keinen Vektor, in dem alle Punkte auf dem Kreis enthalten sind, sondern nur den Datentyp "Line". Damit konnte ich bisher nichts anfangen.

Das eigentliche Problem ist also nicht die Abstandbereichnung, sondern dass ich auch die Punkte zwischen den Datenpunkten benötige, um eine vollständig richtige Berechnung durchzuführen.

Ich hoffe, das war einigermaßen verständlich ausgedrückt. Entschuldige übrigens den Titel, der Frust über das Nichtkennen der Antwort hat mich wohl etwas einfallslos gemacht Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.497
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.08.2018, 22:25     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
Da die Punkte auf dem Streckenverlauf aber teilweise sehr weit auseinander liegen, kann der Abstand sehr groß sein, obwohl der eigentlich kürzeste Abstand zur Strecke viel geringer ist.

Sagte ich ja...

Zitat:
Man müsste also durch eine sehr komplizierte Berechnung den kürzesten Abstand zur Strecke finden.

Ist das wirklich so kompliziert? Man könnte z.B. Punkte interpolieren und so sinnvollere Ergebnisse bekommen.

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
hamva
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 9
Anmeldedatum: 15.08.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.08.2018, 17:20     Titel:
  Antworten mit Zitat      
Ich danke dir, Interpolation ist das Stichpunkt. Da bin ich nicht drauf gekommen Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.