我正在尝试使用以下代码绘制相同尺寸的点。我的目标是修改以下代码以获得正确的结果(我想避免使用不同的代码):
\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fadings,shapes.arrows,shadows}
\usepackage{xparse}
\def\height{3.6/3}
\def\width{3.9}
\def\numpoints{60}
\def\maxpointwidth{2}
\title{\textbf{Cerchi}}
\date{\vspace{-10ex}}
\begin{document}
\maketitle
\begin{center}
\begin{tikzpicture}
\draw[cyan,fill=cyan](0,0) -- (4,0) -- (4,4/3) -- (0,4/3) -- (0,0);
\draw(0,0) -- (4,0) -- (4,4) -- (0,4) -- (0,0);
\foreach \point in {1,...,\numpoints}{
\pgfmathparse{random()}
\pgfmathsetmacro\xpos{\width*\pgfmathresult}
\pgfmathparse{random()}
\pgfmathsetmacro\ypos{\height*\pgfmathresult}
\pgfmathrandom{0.1,\maxpointwidth}
\let\pointwidth\pgfmathresult
\node[circle,inner sep=\pointwidth pt,fill=yellow] (point-\point) at (\xpos,\ypos) {};
}
\end{tikzpicture}
\end{center}
\end{document}
一位同事告诉我解决方案是使用 height rect=4,width rect=8 这两个键,但我不知道如何使用它。
非常感谢你的帮助。
答案1
点的大小由\pointwidth
宏决定。inner sep
实际上设置了从节点内容到节点边缘的距离,因此它与半径有关。设置可能更可预测inner sep=0pt,minimum size=\pointwidth
,其中minimum size
是点的直径。
所做\pgfmathrandom{0.1,\maxpointwidth} \let\pointwidth\pgfmathresult
的就是将其设置\pointwidth
为 0.1 到 之间的随机值\maxpointwidth
。您想要禁用随机化,因此请将其设置\pointwidth
为固定值。
下面是稍微不同的实现,但大部分是相同的:
\documentclass{article}
\usepackage{tikz}
% \newcommand is safer than \def, you wont accidentally overwrite an existing macro
\newcommand\height{3.6/3}
\newcommand\width{3.9}
\newcommand\numpoints{60}
% new macro, to set point size
\newcommand\pointwidth{4pt}
\title{\textbf{Cerchi}}
\date{\vspace{-10ex}}
\begin{document}
\begin{center}
\begin{tikzpicture}
\draw[cyan,fill=cyan] (0,0) rectangle (4,4/3);
\begin{scope} % to limit effect of \clip
% if any circles end up partly outside frame, cut off that part
\clip (0,0) rectangle (4,4/3);
\foreach \point in {1,...,\numpoints}{
\pgfmathsetmacro\xpos{\width*random}
\pgfmathsetmacro\ypos{\height*random}
\node[circle,inner sep=0pt,minimum size=\pointwidth,fill=yellow] (point-\point) at (\xpos,\ypos) {};
}
\end{scope}
\draw(0,0) rectangle (4,4);
\end{tikzpicture}
\end{center}
\end{document}