![tikz 圆圈之间的间距](https://linux22.com/image/289661/tikz%20%E5%9C%86%E5%9C%88%E4%B9%8B%E9%97%B4%E7%9A%84%E9%97%B4%E8%B7%9D.png)
如何缩小圆圈之间的距离?以及如何给每个圆圈上色?
\documentclass{article}
\usepackage[paperheight=30cm,paperwidth=35cm,margin=1in,heightrounded]{geometry}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\fbox{\begin{tikzpicture}[scale=0.8] %
% center
\path (0,0) coordinate(A);
% circles
\foreach \rr in {2,...,10}{
\draw (A) circle (\rr);
}
\end{tikzpicture}}
\end{document}
答案1
由于您使用的范围\foreach
,我假设圆圈的数量是灵活的;因此,所涉及的颜色数量也应该是灵活的。
以下是我的做法。
- 使循环变量(
\n
下面称为)在整数范围内变化(从 1 到要绘制的圆的总数)。 - 使用
\foreach
's键根据该循环变量evaluate
生成每个半径的值(下面调用)。\rr
- 使用
\foreach
的evaluate
键生成一个介于 0 和 100 之间的值(如下所示\sat
),然后使用该值在两种颜色(例如红色和蓝色)之间线性改变圆圈的颜色。
\documentclass{article}
\usepackage[paperheight=30cm,paperwidth=35cm,margin=1in,heightrounded]{geometry}
\usepackage{tikz}
\begin{document}
\fbox{\begin{tikzpicture}[scale=0.8] %
% center
\path (0,0) coordinate(A);
% circles
\def\Rfactor{0.5} % multiplying factor
\pgfmathtruncatemacro\nbcircles{9} % number of circles to draw
\foreach[
var=\n,
evaluate=\n as \rr using \Rfactor*(\n+1),
evaluate=\n as \sat using 100/(\nbcircles-1)*(\n-1),
] \rr in {1,...,\nbcircles}
{
\draw[blue!\sat!red] (A) circle (\rr);
}
\end{tikzpicture}}
\end{document}