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

tangentiale Verbindung von Linien

 

Ruan89
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 26.12.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.06.2019, 10:01     Titel: tangentiale Verbindung von Linien
  Antworten mit Zitat      
Hallo,

zwei Linien, welche durch X und Y-Koordinaten beschrieben sind, kreuzen sich. Beide Enden sollen nun mit einer Kurve verbunden werden. Dabei soll die Kurve tangential an der einen Linie starten und tangential an der anderen Linie anschliessen.
Im beigefügtem Bild ist ein Beispiel dargestellt:
Die Kurve (grün gepunktet) beginnt am Ende der blauen Linie und endet an der roten Linie. Anfang und Ende der Kurve soll tangential an den Linien sein.
Hat jemand einen Ansatz für das Problem? Ich konnte bisher leider nichts sinnvolles programmieren.

Ich bin für jeden Hinweis sehr dankbar!
Grüsse

Folie1.JPG
 Beschreibung:

Download
 Dateiname:  Folie1.JPG
 Dateigröße:  20.25 KB
 Heruntergeladen:  313 mal
Private Nachricht senden Benutzer-Profile anzeigen


Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 04.06.2019, 17:02     Titel: Re: tangentiale Verbindung von Linien
  Antworten mit Zitat      
Hallo Ruan89,

es gibt unendlich viele verschiedene Kurven, die diese Angaben erfüllen. Beginne damit weitere Details zu definieren, z.B. die maximale Krümmung oder die Länge der Kurve.

Wenn die beiden Linien gleich lang wären und sich in der Mitte rechtwinklig schneiden, wären die Kurven 3/4 eines Kreises. Du könntest hierzu die Gleichung aufstellen. Nun sind die Linien aber verschoben und schneiden sich nicht rechtwinklig. Das kann man durch eine lineare Koordinaten-Transformation erreichen (Translation und Multiplikation mit einer Matrix). Wenn du die gleiche Transformation auf die Gleichung des Kreises anwendest, hast du eine Lösung.

Ein B-Spline wäre auch Ansatz. Du könntest auch einen Kegelschnitt an die Punkte fitten.
Wie gesagt: Es gibt so viele Möglichkeiten, dass du zunächst mal herausfinden musst, wonach du suchst.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Ruan89
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 26.12.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.06.2019, 10:39     Titel:
  Antworten mit Zitat      
Hallo Jan,

danke für die Antwort. Sorry, dass ich das nicht gleich näher definiert habe. Eine Anforderung ist, dass die Kurve so klein wie möglich bzw. die Länge minimal ist.
Die Linien können von Fall zu Fall unterschiedlich im Raum liegen, schneiden sich aber in allen Fällen. Der Öffnungswinkel überschreitet aber nie 180°.


Viele Grüsse
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 07.06.2019, 16:42     Titel:
  Antworten mit Zitat      
Hallo Ruan89,

"So klein wie möglich"? Das würde bedeuten, dass sie so schnell wie möglich nach der linearen Fortsetzung der Geraden einen scharfen Knick hat (also sehr große Krümmung) und dann geradlinig zum anderen Ende geht und dort mit ähnlich scharfem Knick wieder in die zweite Linie übergeht. Wenn man die Krümmung dann mal gegen unendlich gehen lässt, sieht das bei endlicher Auflösung aus, wie eine Gerade von Endpunkt zu Endpunkt.

Zitat:
Die Linien können von Fall zu Fall unterschiedlich im Raum liegen, [...]

Du meinst im 2D-Raum, oder?

Ich denke, "möglichst klein" ist nicht das, was gemeint ist. Vielleicht möglichst kleine maximale Krümmung, oder möglichst keine durchschnittliche Krümmung? Soll die Kurve mehrfach differenzierbar sein, wenn ja, wie oft? Wie wäre ein B-Spline oder kubischer Spline?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Ruan89
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 26.12.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.06.2019, 10:45     Titel:
  Antworten mit Zitat      
Hallo Jan,

ich konnte leider erst jetzt antworten. Genau, ich meine den 2D-Raum. Für meine Anwendung ist es doch besser, wenn ich den Radius der Kurve im Vorhinein definieren kann. Also z. B. eine tangentiale Verbindung zweier Geraden mit einer Kurve mit einem Radius von 1 mm oder 3 mm usw.
Ich bin mir nicht sicher, ob ein B-Spline oder ein kubischer Spline sinnvoller ist...
Sorry für die Umstände.

Viele Grüsse
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 13.06.2019, 18:16     Titel:
  Antworten mit Zitat      
Hallo Ruan89,

Du erwähnst einen "Radius von 1mm". Von Millimetern war bisher noch gar nicht die Rede. Du hast also auch noch Einheiten für den Raum gegeben.
Wenn die Geraden nicht genau senkrecht aufeinander liegen, gibt es keine Lösung mit gleichbleibendem Radius. Wenn sie senkrecht sind, gibt es nur eine Kurve mit fixem Radius, der ist dann aber nicht wählbar. Beides gilt nur, wenn die Geraden sind in ihren Mitten schneiden.

Ich denke, du solltest noch mal mit einem Betreuer/Professor genau besprechen, welche Kurve genau gesucht ist. Die Frage ist nicht trivial.

Zitat:
Sorry für die Umstände.

Gerne! Das hier ist ja ein Forum zum Lösen von Matlab-Problemen. Wenn es keine Umstände macht, sind Fragen ja im Allgemeinen trivial und man löst sie alleine :-)

Gruß, Jan
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 - 2024 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.