|
|
Kurve durch vorgegebene Punkte mit festgelegtem Winkel |
|
mikemodanoxxx |

Forum-Anfänger
|
 |
Beiträge: 41
|
 |
|
 |
Anmeldedatum: 23.04.09
|
 |
|
 |
Wohnort: Höchst/Odw
|
 |
|
 |
Version: R2007a
|
 |
|
|
 |
|
Verfasst am: 05.08.2013, 12:51
Titel: Kurve durch vorgegebene Punkte mit festgelegtem Winkel
|
 |
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.
|
|
|
|
|
Sirius3 |

Forum-Guru
|
 |
Beiträge: 441
|
 |
|
 |
Anmeldedatum: 12.11.11
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 05.08.2013, 20:59
Titel:
|
 |
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.
|
|
|
MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 06.08.2013, 10:49
Titel:
|
 |
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...
Grüße, Marc
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 06.08.2013, 11:46
Titel:
|
 |
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
|
|
|
MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 06.08.2013, 13:55
Titel:
|
 |
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
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 06.08.2013, 14:09
Titel:
|
 |
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
|
|
|
MaFam |

Forum-Meister
|
 |
Beiträge: 799
|
 |
|
 |
Anmeldedatum: 02.05.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: R2009b
|
 |
|
|
 |
|
Verfasst am: 06.08.2013, 14:14
Titel:
|
 |
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.
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 06.08.2013, 16:59
Titel:
|
 |
|
 |
|
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|