Matroids Matheplanet Forum Index
Moderiert von nzimme10
Analysis » Funktionen » Lage eines Punktes bezüglich einer gerichteten kubischen Bezier-Kurve
Autor
Universität/Hochschule J Lage eines Punktes bezüglich einer gerichteten kubischen Bezier-Kurve
exellian
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 13.02.2022
Mitteilungen: 5
  Themenstart: 2023-01-26

Angenommen man hat eine gerichtete kubische Bezierkurve, wie in dem folgendem Bild dargestellt (Startet bei A, endet bei D und hat die Kontrollpunkte B und C): https://matheplanet.com/matheplanet/nuke/html/uploads/c/55391_Screenshot_2023-01-26_202646.png Wie kann man feststellen ob der Punkt P rechts oder links bezüglich der Richtung der Kurve liegt. Also im Bild dargestellt: im blauen oder im braunen Bereich liegt. Die Richtung ist dabei einfach immer dadurch gegeben, dass es einen Startpunkt und einen Endpunkt der Kurve gibt. In diesem Fall A und D. Ich würde mich mich über Hilfe freuen, da ich dazu fast nichts im Internet gefunden habe!


   Profil
nzimme10
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 01.11.2020
Mitteilungen: 2070
Wohnort: Köln
  Beitrag No.1, eingetragen 2023-01-26

\(\begingroup\)\(\renewcommand{\i}{\mathrm{i}} \renewcommand{\Re}{\operatorname{Re}} \renewcommand{\Im}{\operatorname{Im}} \newcommand{\e}{\mathrm{e}} \renewcommand{\d}{\mathrm{d}} \renewcommand{\dd}{\ \mathrm d} \newcommand{\ddz}{\frac{\mathrm{d}}{\mathrm{d}z}} \newcommand{\ddw}{\frac{\mathrm{d}}{\mathrm{d}w}} \newcommand{\ddt}{\frac{\mathrm{d}}{\mathrm{d}t}} \newcommand{\opn}{\operatorname} \renewcommand{\vec}[3]{\begin{pmatrix} #1 \\ #2\\ #3\end{pmatrix}} \newcommand{\rot}{\opn{rot}} \newcommand{\div}{\opn{div}}\) Hallo, eine recht naive Möglichkeit: Zunächst versehen wir $\mathbb R^2$ mit seiner normalen Orientierung. Wenn die Kurve durch eine Parametrisierung $\gamma\colon [0,1]\to \mathbb R^2$ gegeben ist, dann bestimmen wir zunächst $t_0\in [0,1]$ derart, dass der Abstand von $P$ und $\gamma(t_0)$ minimal ist. Anschließend betrachten wir den Tangentialvektor $\gamma'(t_0)$ und den Vektor $P-\gamma(t_0)$. Die stehen natürlich senkrecht zueinander. Die Determinante der Matrix mit den Spalten $P-\gamma(t_0)$ und $\gamma'(t_0)$ (in dieser Reihenfolge) liefert uns dann die Antwort auf deine Frage. Sie ist positiv, wenn $P$ rechts von der Kurve liegt und negativ, wenn $P$ links davon liegt. Das funktioniert natürlich nur, wenn die $x$-Koordinate von $P$ zwischen denen des Anfangs- und Endpunkts der Kurve liegt. (Durch eine kleine Modifikation lässt sich das aber natürlich beheben). LG Nico\(\endgroup\)


   Profil
exellian
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 13.02.2022
Mitteilungen: 5
  Beitrag No.2, vom Themenstarter, eingetragen 2023-01-27

\quoteon(2023-01-26 23:06 - nzimme10 in Beitrag No. 1) Hallo, eine recht naive Möglichkeit: Zunächst versehen wir $\mathbb R^2$ mit seiner normalen Orientierung. Wenn die Kurve durch eine Parametrisierung $\gamma\colon [0,1]\to \mathbb R^2$ gegeben ist, dann bestimmen wir zunächst $t_0\in [0,1]$ derart, dass der Abstand von $P$ und $\gamma(t_0)$ minimal ist. Anschließend betrachten wir den Tangentialvektor $\gamma'(t_0)$ und den Vektor $P-\gamma(t_0)$. Die stehen natürlich senkrecht zueinander. Die Determinante der Matrix mit den Spalten $P-\gamma(t_0)$ und $\gamma'(t_0)$ (in dieser Reihenfolge) liefert uns dann die Antwort auf deine Frage. Sie ist positiv, wenn $P$ rechts von der Kurve liegt und negativ, wenn $P$ links davon liegt. Das funktioniert natürlich nur, wenn die $x$-Koordinate von $P$ zwischen denen des Anfangs- und Endpunkts der Kurve liegt. (Durch eine kleine Modifikation lässt sich das aber natürlich beheben). LG Nico \quoteoff Vielen Dank! Das klingt schonmal ziemlich hilfreich und ich werde es gleich mal ausprobieren ob es klappt. Das einzige was ich nicht ganz verstehe warum das Vorzeichen der Determinante dann zwischen dem Tangentialvektor und dem senkrechten dazu, die richtige Richtung angibt. Das liegt vielleicht auch daran, dass ich Determinanten noch nie ganz verstanden habe, aber egal.


   Profil
go361
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.06.2022
Mitteilungen: 57
  Beitrag No.3, eingetragen 2023-01-27

\quoteon(2023-01-26 20:45 - exellian im Themenstart) https://matheplanet.com/matheplanet/nuke/html/uploads/c/55391_Screenshot_2023-01-26_202646.png \quoteoff Das Bild ist von Inigo Quilez zum Thema Signed Distance Functions, aber ich kann auf seiner Seite nur Artikel zu SDFs von quadratischen Beziers finden. Wo hast du das Bild denn her? Oder versuchst du seinen SDF Shadertoy Code an kubische Beziers anzupassen? In beiden Fällen freue ich mich über einen Link, da ich so etwas auch brauche/gern hätte.


   Profil
exellian
Junior Letzter Besuch: im letzten Quartal
Dabei seit: 13.02.2022
Mitteilungen: 5
  Beitrag No.4, vom Themenstarter, eingetragen 2023-01-28

\quoteon(2023-01-27 08:52 - go361 in Beitrag No. 3) \quoteon(2023-01-26 20:45 - exellian im Themenstart) https://matheplanet.com/matheplanet/nuke/html/uploads/c/55391_Screenshot_2023-01-26_202646.png \quoteoff Das Bild ist von Inigo Quilez zum Thema Signed Distance Functions, aber ich kann auf seiner Seite nur Artikel zu SDFs von quadratischen Beziers finden. Wo hast du das Bild denn her? Oder versuchst du seinen SDF Shadertoy Code an kubische Beziers anzupassen? In beiden Fällen freue ich mich über einen Link, da ich so etwas auch brauche/gern hätte. \quoteoff Also das Bild habe ich von diesem Shadertoy-shader https://www.shadertoy.com/view/4sKyzW Dieser implementiert bereits ein SDF für kubische Bezierkurven. Das Problem mit dem Code war nur, dass das Vorzeichen des SDFs oft hin und her flippt und nicht immer auf der rechten Seite der Kurve ist. Deshalb habe ich diese Frage formuliert und die Lösung von Nico implementiert und es scheint zu funktionieren: https://www.shadertoy.com/view/dlfXWN LG Max


   Profil
go361
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 21.06.2022
Mitteilungen: 57
  Beitrag No.5, eingetragen 2023-01-28

\quoteon(2023-01-28 04:28 - exellian in Beitrag No. 4) Also das Bild habe ich von diesem Shadertoy-shader https://www.shadertoy.com/view/4sKyzW Dieser implementiert bereits ein SDF für kubische Bezierkurven. Das Problem mit dem Code war nur, dass das Vorzeichen des SDFs oft hin und her flippt und nicht immer auf der rechten Seite der Kurve ist. Deshalb habe ich diese Frage formuliert und die Lösung von Nico implementiert und es scheint zu funktionieren: https://www.shadertoy.com/view/dlfXWN LG Max \quoteoff Sehr cool, danke!


   Profil
exellian hat die Antworten auf ihre/seine Frage gesehen.
exellian hat selbst das Ok-Häkchen gesetzt.
exellian wird per Mail über neue Antworten informiert.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]