node liegt mit bend left/right + shorten nicht auf der Kurve

Antwort erstellen


Diese Frage dient dazu, das automatisierte Versenden von Formularen durch Spam-Bots zu verhindern.
Smilies
:D :) :( :o :shock: :? 8) :lol: :-x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind eingeschaltet

Die letzten Beiträge des Themas

Ich habe die Datenschutzerklärung gelesen und bin damit einverstanden.

   

Wenn du eine Datei oder mehrere Dateien anhängen möchtest, gib die Details unten ein.

Ansicht erweitern Die letzten Beiträge des Themas: node liegt mit bend left/right + shorten nicht auf der Kurve

von esdd » Fr 6. Okt 2017, 12:44

Wenn keine Pfeile an die Enden des blauen Pfades kommen, ginge etwas wie

\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.pathmorphing}
\tikzset{
  shorten/.style n args={3}{
    postaction={#1, decorate,
      decoration={curveto,
        pre=moveto, pre length=#2,
        post=moveto, post length=#3
  }}},
}

\begin{document} 
\begin{tikzpicture} 
\draw[red,bend left] (-2,0) to coordinate[pos=0.3] (A) (2,0); 
\draw[red,fill] (A) circle (1pt);
\path[blue,bend left, shorten={draw}{.5cm}{0cm}] (-2,0) to coordinate[pos=.3] (B) (2,0); 
\draw[blue] (B) circle (1pt);
\end{tikzpicture} 
\end{document}
Beachte, dass bei der blauen Linie erst die Dekoration gezeichnet wird und deshalb an der Stelle \path verwendet wird.

node liegt mit bend left/right + shorten nicht auf der Kurve

von markusv » Fr 6. Okt 2017, 07:57

Hallo liebe LaTeX-Gemeinde.

Ich habe eine Frage zur Positionierung von nodes bzw. coordinates in Verbindung mit bend/shorten.

Konkret möchte ich, dass eine node auf einer Kurve liegt, die ich mit bend biege und mit shorten kürze. Mein Problem ist, dass die node in diesem Fall nicht mehr auf der Kurve liegt, da die Positionierung offensichtlich Start- und Endpunkt als Referenz nutzt, und nicht die tatsächlich gezeichnete Linie.

Ich hoffe, mein Problem ist einigermaßen zu verstehen. Anbei noch ein Beispiel, was den Sachverhalt nochmal verdeutlicht:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
\draw[red,bend left] (-2,0) to coordinate[pos=0.3] (A) (2,0);
\draw[red,fill] (A) circle (1pt);%liegt auf der Kurve
\draw[blue,bend left, shorten <=.5cm] (-2,0) to coordinate[pos=.3] (B) (2,0);
\draw[blue] (B) circle (1pt);%liegt neben der Kurve
\end{tikzpicture}
\end{document}
Da schließt sich noch eine Frage an, die ich frecherweise gleich noch anhänge, da sie das Problem ebenfalls beheben würde: Gibt es eine Möglichkeit, die Kurve so zu beschneiden, dass der Verlauf nicht verändert wird?

Nach oben