忽略 pgf 裝飾中的旋轉

忽略 pgf 裝飾中的旋轉

編輯:我感興趣的是如何使用 pgf 裝飾來解決這個問題,而不是如何繪製這個特定的形狀。


我正在嘗試使用 pgf 線裝飾來繪製虛線,其中點是正方形,如下所示:

正確的線路行為

然而 pgf 會自動旋轉繪製正方形的環境,如以下程式碼所示:

\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}

輸出如下:

在此輸入影像描述

有沒有辦法補償自動旋轉,或交替禁用它?

答案1

\fill輸入裝飾代碼後,按照與旋轉相反的方向旋轉裝飾指令(由 給出\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}

在此輸入影像描述

相關內容