
편집하다:나는 이 특정 모양을 그리는 방법이 아니라 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}