几个月前,我编写了一个代码来将圆分成几部分。
\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}
现在我想对矩形进行类似操作。我想给出一些数字(例如k
和m
)以水平和垂直方式将矩形分成几部分。
你有好主意吗?
答案1
这是您想要的吗?这是一个宏\fracrect{k}{m}
,它将矩形分成m
几部分并填充k
它们。有一个可选参数可以包含tikz
诸如rotate
、xscale
、yscale
、thick
等选项。
\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}