Rotation in PGF-Dekorationen ignorieren

Rotation in PGF-Dekorationen ignorieren

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:

Richtiges Leitungsverhalten

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:

Bildbeschreibung hier eingeben

Gibt es eine Möglichkeit, die automatische Drehung entweder zu kompensieren oder alternativ zu deaktivieren?

Antwort1

Drehen Sie Ihren \fillDekorationsbefehl 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}

Bildbeschreibung hier eingeben

verwandte Informationen