图形中的颜色 LaTeX

图形中的颜色 LaTeX

我想画三个圆圈,如图所示在此处输入图片描述所以我写了下面的代码:

$\begin{array}{lcr}
\begin{tikzpicture}
%\filldraw[draw=black,fill=gray!20]
\draw  (4,4) circle (1) ;
\draw (7,4) circle (1) ;
\draw (10,4) circle (1) ;
\draw (3,4) -- (5,4) ;
\draw (6,4) -- (8,4) ;
\draw (9,4) -- (11,4);
\draw (3.4,4.8) -- (4.6,4.8);
\draw (3.4,3.2) -- (4.6,3.2);
\draw (6.15,4.5) -- (7.85,4.5);
\draw (6.15,3.5) -- (7.85,3.5);
\draw  (9.01,4.2) -- (10.99,4.2);
\draw  (9.01,3.8) -- (10.99,3.8);
\end{tikzpicture}\\
\quad n=3 \hspace{2cm} n=11\hspace{2cm} n=101
\end{array}$

我的问题是我想添加如上图所示的灰色。有人可以帮我做到这一点吗?

答案1

我认为下面的代码应该可以解决问题。该clip选项将绘制的空间缩小到圆的面积。因此,您可以在其上绘制一个矩形,并且只会填充圆内的区域。因此,您也不必计算圆边缘上的线条的精确点。

最后,您需要示波器来重置剪切区域并绘制下一个圆。tikz/pgf 文档非常好,还有很多示例。真的值得一读。

下次,请提供最小工作示例。这对我们帮助您有很大帮助,而且节省了时间。您的代码非常接近它,而且您是新手,所以我还是解决了它。但下一次,人们可能会在回答之前先请求它。

\documentclass{article}
\usepackage{tikz}
\begin{document}

 $\begin{array}{lcr}
\begin{tikzpicture}
\begin{scope}
    \draw[clip]  (4,4) circle (1);
    \filldraw[draw=black, gray!20] (3,3.2) rectangle (5,4.8);
    \draw (3,4.8) -- (5,4.8);
    \draw (3,4) -- (5,4);
    \draw (3,3.2) -- (5,3.2);
\end{scope}
\begin{scope}
    \draw[clip] (7,4) circle (1);
    \filldraw[draw=black, gray!20] (5,4.5) rectangle (8,3.5);
    \draw (6,4) -- (8,4);
    \draw (6.15,4.5) -- (7.85,4.5);
    \draw (6.15,3.5) -- (7.85,3.5);
\end{scope}
\begin{scope}
    \draw[clip] (10,4) circle (1) ;
    \filldraw[draw=black, gray!20] (8,4.2) rectangle (12,3.8);
    \draw (9,4) -- (11,4);
    \draw  (9.01,4.2) -- (10.99,4.2);
    \draw  (9.01,3.8) -- (10.99,3.8);
\end{scope}
\end{tikzpicture}\\
\quad n=3 \hspace{2cm} n=11\hspace{2cm} n=101
\end{array}$
\end{document}

这就是结果

答案2

首先,您不应该在数学模式下合并整个图片。将标签对齐到每个圆圈下是一个问题。相反,我会用三个圆圈绘制一幅图,并在它们上绘制标签。除此之外,这是一个与 Dave 所做的类似的解决方案,使用scopeclip。在下面有一个命令接受一些输入,其中标签是可选的。否则xy是中心和partgray一个介于 0 和 1 之间的数字,指定彩色部分的高度。为了好玩,您还可以设置半径和颜色。

\documentclass{article}
\usepackage{tikz}
\newcommand\partgraycirc[6][]{% [label]{x}{y}{radius}{partgray}{color}
  \begin{scope}
    \clip  (#2,#3) circle (#4);
    \fill[#6] (#2-#4,#3-#4*#5) rectangle +(2*#4,2*#5*#4);
  \end{scope}
  \draw (#2,#3) circle (#4);
  \node[below] at (#2,#3-#4) {#1};
}
\begin{document}

\begin{tikzpicture}
  \partgraycirc[$d=3$]{1}{1}{1.5}{0.9}{red!40}
  \partgraycirc[$d=11$]{3.5}{1}{0.5}{0.5}{green!40}
  \partgraycirc[$d=101$]{6}{1}{1}{0.1}{blue!40}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容