
Bearbeiten:Mich interessiert, wie dieses Problem mithilfe von PGF-Dekorationen gelöst werden könnte oder nicht, und nicht, wie man diese spezielle Form zeichnet.
Ich versuche, mithilfe von PGF-Liniendekorationen gepunktete Linien zu zeichnen, wobei die Punkte Quadrate sind, wie in:
Allerdings dreht pgf automatisch die Umgebung, in der die Quadrate gezeichnet werden, wie im folgenden Code:
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,decorations}
\pgfdeclaredecoration{Squares}{initial}{
\state{initial}[width=10pt]{
\fill (0cm,0cm) rectangle (5pt,5pt);
}
\state{final}{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\begin{document}
\begin{center}
\begin{tikzpicture}
\draw[decorate,decoration=Squares] (0,0) -- (5,5);
\end{tikzpicture}
\end{center}
\end{document}
die folgendes ausgibt:
Gibt es eine Möglichkeit, die automatische Drehung entweder zu kompensieren oder alternativ zu deaktivieren?
Antwort1
Drehen Sie Ihren \fill
Dekorationsbefehl in die entgegengesetzte Richtung wie bei der Eingabe des Dekorationscodes (angegeben durch \pgfdecoratedangle
):
\documentclass[tikz]{standalone}
\usetikzlibrary{calc,decorations}
\pgfdeclaredecoration{Squares}{initial}{
\state{initial}[width=10pt]{
\fill[rotate=-\pgfdecoratedangle] (0cm,0cm) rectangle (5pt,5pt);
}
\state{final}{
\pgfpathlineto{\pgfpointdecoratedpathlast}
}
}
\begin{document}
\begin{tikzpicture}
\draw[decorate,decoration=Squares] (0,0) -- (1,5);
\draw[decorate,decoration=Squares] (0,0) -- (5,5);
\draw[decorate,decoration=Squares] (0,0) to[out=0,in=-90] (5,5);
\draw[decorate,decoration=Squares] (0,0) -- (5,1);
\end{tikzpicture}
\end{document}