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}

여기에 이미지 설명을 입력하세요

관련 정보