将矩形分成几部分

将矩形分成几部分

几个月前,我编写了一个代码来将圆分成几部分。

\documentclass[tikz, border=0mm]{standalone}
\begin{document}    
\begin{tikzpicture}
\def\mysegments{15}
\def\myradius{2}
\draw[fill=purple!40] (0,0) -- (0:2) arc[start angle=0, end angle=216,radius=2cm];
\foreach \x in {1,...,\mysegments} {
    \draw (0,0) --++ (360/\mysegments*\x:\myradius) arc (360/\mysegments*\x:360/\mysegments*     
(\x+1):\myradius);
   % \draw (360/\mysegments*\x:\myradius) node {\tiny\textbullet};
   % \node at (360/\mysegments*\x-180/\mysegments:\myradius/1.5) {\x};
  }
 \draw (0,0) node {\tiny\textbullet};
 \draw[color=black,line width=1pt] (0,0) circle (2cm);
 \end{tikzpicture}
  \end{document}

现在我想对矩形进行类似操作。我想给出一些数字(例如km)以水平和垂直方式将矩形分成几部分。

你有好主意吗?

答案1

这是您想要的吗?这是一个宏\fracrect{k}{m},它将矩形分成m几部分并填充k它们。有一个可选参数可以包含tikz诸如rotatexscaleyscalethick等选项。

enter image description here

\documentclass{article}

\usepackage{tikz,amsmath}

\newcommand{\fracrect}[3][]{\tikz[baseline, #1]{
    \foreach \n in {1,...,#2}{\draw[fill=purple!40] ({(\n-1)/#3},0) rectangle (\n/#3,1);}
    \foreach \n in {#2,...,#3} {\draw ({(\n-1)/#3},0) rectangle (\n/#3,1);}}}

\begin{document}
\fracrect[xscale=4]{3}{4}\qquad
\fracrect[yscale=3, rotate=90]{9}{15}
\end{document}

相关内容