如何改善图像?

如何改善图像?

我想要画一个由正方形组成的三角形,交替地进出,如图所示,使得点 P、Q、R 和 S 共线。 在此处输入图片描述

但我的设计很丑。 在此处输入图片描述

\documentclass[12pt]{article}
\usepackage[T1]{fontenc}    
\usepackage[latin1]{inputenc}   
\usepackage[brazil]{babel} 
\usepackage{tikz} 
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=0.5]
\draw(0,0) rectangle (5,5);
\draw[fill=gray!40] (1.8,2.4)--(0,5)--(5,5)--(1.8,2.4);
\draw[fill=gray!40] (0,0)--(3.2,2.4)--(5,0)--(0,0);
\draw[fill=gray!40] (7.4,1.8)--(5,5)--(5,0)--(7.4,1.8);
\draw[fill=gray!40] (0,0)--(-2.4,3.2)--(0,5)--(0,0);
\end{tikzpicture}
\end{center}
\end{document}

如何改善它?

答案1

在重复的小形状的情况下,键.pic非常有用。它还可以根据需要接受参数。一般语法如下

\tikzset{
   pics/picname/.style={
       code={
            <pic commands>},
   }
}

但在大多数情况下,如果参数少于两个,这种较短的语法就足够了

\tikzset{    
    picname/.pic={ 
       <pic commands> },
}

有关更多详细信息,请参阅 TikZ 手册。

\documentclass[12pt]{article}    
\usepackage[T1]{fontenc}
\usepackage[latin1]{inputenc}
\usepackage[brazil]{babel}
\usepackage{tikz}
\usetikzlibrary{calc,patterns}
\begin{document}

\tikzset{
  tr/.pic={
    \draw[pattern=dots] (0,0) -- (0,4cm) -- (30:2cm) -- cycle;
    \node at ($(0,0)!1.2!(30:2cm)$) {#1};
  }
}

\begin{center}
\begin{tikzpicture}
\path pic[rotate=  0]  at (4,0) {tr=S};
\path pic[rotate= 90]  at (4,0) {tr=R};
\path pic[rotate=-90]  at (0,4) {tr=Q};
\path pic[rotate=180]  at (0,4) {tr=P};
\end{tikzpicture}
\end{center}

\end{document}

在此处输入图片描述

相关内容