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

Kurve durch vorgegebene Punkte mit festgelegtem Winkel

 

mikemodanoxxx
Forum-Anfänger

Forum-Anfänger



Beiträge: 41
Anmeldedatum: 23.04.09
Wohnort: Höchst/Odw
Version: R2007a
     Beitrag Verfasst am: 05.08.2013, 12:51     Titel: Kurve durch vorgegebene Punkte mit festgelegtem Winkel
  Antworten mit Zitat      
Hallo,

ich habe momentan eine feste Anzahl von Punkten, die ich gerne in einem Plot verbinden möchte. Die Punkte sollten aber nicht durch Geraden verknüpft werden sondern quasi durch eine Kurve. Die Winkel unter denen die Kurve die Punkte trifft kenne ich bereits.

Hat jemand eine Idee, wie man das lösen könnte? Es handelt sich nicht um eine eindeutige Funktion y(x), sondern die Punkte können beispielsweise auch einen Kreis bilden.
Private Nachricht senden Benutzer-Profile anzeigen


Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.08.2013, 20:59     Titel:
  Antworten mit Zitat      
Hallo mikemodanoxxx,

aus den wenigen Angaben, die Du da machst, kann man noch nicht wirklich viel raten. Ich würde mal bei Splines anfangen, in der Form die nach Bézier benannt sind, kannst Du auch Steigungen festlegen und Kreise malen.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.08.2013, 10:49     Titel:
  Antworten mit Zitat      
Hallo,

ein Winkel zwischen einer Geraden (Senkrechte zum Gradienten) und einem Punkt ist nicht definiert. Dieses Problem müsste man zuerst klären. Danach könnte man sich den Kurven zuwenden. Es läuft wohl auf angepasste 2D-Splines hinaus.

Das Problem ist übrigens interessant, wie ich finde... Very Happy

Grüße, Marc
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: 06.08.2013, 11:46     Titel:
  Antworten mit Zitat      
Hallo MaFam,

Ich gehe davon aus, dass die Steigung der Kurve in den Stützstellen gemeint ist. Mit den Stichworten Spline, B-Spline und Bezier sollte man hier schon weiter kommen.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.08.2013, 13:55     Titel:
  Antworten mit Zitat      
Hallo Jan,

Bézierkurven und B-Splines sind nach ihrem Grad eindeutig und nicht auf die Problematik anpassbar, andernfalls hat man irgendeinen Ansatz und kann die genannten Begriffe nicht verwenden.

2D Splines bilden indes auf offenes Konzept und sind entsprechend anpassbar.

Grüße, Marc
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: 06.08.2013, 14:09     Titel:
  Antworten mit Zitat      
Hallo MaFam,

Es stimmt, dass Bézierkurven und B-Splines eindeutige Funktionen beschreiben. Durch eine einfache Transformation, bei der jeweils benachbarte Punkte in die horizontale gedreht werden, bekommt man aber mit sehr geringem Aufwand auch beliebige Pfade in der Ebene damit hin.

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 06.08.2013, 14:14     Titel:
  Antworten mit Zitat      
Das, was du vorschlägst, so wie ich es verstehe, verletzt die Erhaltung der Differenzierbarkeit und sogar der Stetigkeit.

Vielleicht kannst du das näher erklären?

Ich würde dennoch die 2D Splines ansetzen. Man kann ein einfaches LGS aufstellen und lösen. Das ist sauber und explizit.
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: 06.08.2013, 16:59     Titel:
  Antworten mit Zitat      
Hallo MaFam,

Ein 2D Spline macht genau das implizit, was ich explizit vorgeschlagen habe.
Stelle Dir den Polygon-Zug der Stützstellen vor. Wenn Du dann zur Berechnung jedes Teil-Abschnitts des Splines die Ebene so rotierst, dass das jeweils betrachtete Linienelement parallel zur X-Achse ist, bekommst Du die stückchenweise Eindeutigkeit wieder zurück, obwohl der gesamte Polygonzug nicht eindeutig ist (und die Glättung als Spline macht da keinen Unterschied mehr). Die einzige Voraussetzung ist, dass der Winkel zwischen dem jeweiligen Linien-Element und der Steigung des Splines nicht größer als 90 Grad ist. Dann muss man die Argumentation leicht anpassen und den Spline weiter zerstückeln.

Das Rotieren der Fläche ändert an den Eigenschaften des Splines gar nichts, insbesondere nicht die Differenzierbarkeit. Genauer gesagt: Der Spline ist invariant unter affinen Transformationen. Der transformierte Spline ist deshalb identisch zum Spline der transformierten Positionen und Ableitungen der Stützpunkte.

Zitat:
Man kann ein einfaches LGS aufstellen und lösen. Das ist sauber und explizit.

Und genau das gleiche geschieht, wenn man die Konstruktion per Ebenendrehung vornimmt. Etwas anderes als ein LGS Aufstellen ist dazu ja ebenfalls nicht notwendig.

Ich hoffe, es wird klarer, was ich meine. Falls nicht, liegt ein Missverständnis vor, denn im Grunde habe ich nur die triviale Aussage getroffen, dass man ein Spline z.B. auch durch Punkte legen kann, die die gleichen X-Werte haben, obwohl dies aus mathematische Sicht für Polynome nicht möglich ist. Man kann aber z.B. per Rotation um 90 Grad alle Punkte parallel zur X-Achse legen, das Spline-Polynom bestimmen und wieder zurück rotieren.

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 - 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.