Platzieren Sie eine Markierung an einem bestimmten Punkt entlang des Pfadsbefasst sich mit der Platzierung einer Markierung auf einem komplizierten Pfad. Allerdings ist die Platzierung einer Markierung auf einer einfachen geraden Linie dennoch schwierig.
Ich versuche:
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0, 0);
\coordinate (B) at (1, 3);
\draw (A) -- (B);
\path [
postaction={decorate},
decoration={
markings,
mark = at position {0.1\dimexpr\pgfdecoratedpathlength\relax} with {fill = red circle (0.5cm)}
}
] (A) -- (B) ;
\end{tikzpicture}
\end{document}
In der Ausgabe
die Markierung ist nirgends zu sehen.
Was ist falsch und wie kann ich das Problem beheben?
Antwort1
Dasselbe Ergebnis können Sie erzielen ohne decorations.markings
:
\documentclass[tikz, border=1cm]{standalone}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0, 0);
\coordinate (B) at (1, 3);
\draw (A) -- (B) node[pos=0.1, circle,fill=red,inner sep=1.5pt] {};
\end{tikzpicture}
\end{document}
Antwort2
Ich bin mir nicht sicher, woher Sie diese Syntax für die Markierung haben. Sie brauchen
mark = at position 0.1 with {\fill [red] circle (0.5cm);}
Wie Schrödingers Katze in einem Kommentar erwähnt hat, brauchen Sie \pgfdecorationpathlength
überhaupt keine, eine Zahl wird als Bruchteil der Entfernung entlang des Pfads interpretiert. (Wenn Sie verwenden möchten \pgfdirectionpathlength
, 0.1*\pgfdecoratedpathlength
reicht einfach, nicht \dimexpr
erforderlich.) Und die eigentliche Markierung muss ein richtiger Pfad sein.
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (0, 0);
\coordinate (B) at (1, 3);
\draw (A) -- (B);
\path [
postaction={decorate},
decoration={
markings,
mark = at position 0.1 with {\fill [red] circle [radius=0.1cm];}
}
] (A) -- (B) ;
\end{tikzpicture}
\end{document}