tikz 圆形图片-在里面压出一个形状?

tikz 圆形图片-在里面压出一个形状?

我刚刚画了一个圆圈。它看起来像这样:

在此处输入图片描述

现在我坚持使用弧形部分。它由两个填充绘制组成。一个使用较浅的灰色,另一个在第一个里面使用color=white

有没有办法把灰色圆弧部分剪掉?我想透过白色圆弧看到两个圆峰。

以下是代码示例:

\documentclass[12pt,a4paper,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{tikz}

\begin{document}

\tikzset{circlet/.pic = {%
 \filldraw[color=gray] (0,-0.1) arc (-90:90:0.1) -| ++ (-2,0) -- ++ (-2,-0.05) -- ++ (-0.5,-0.05) -- ++ (0.5,-0.05)-- ++ (2,-0.05) -- cycle;
 \begin{scope}[rotate=-20,transform shape]
   \filldraw[color=gray] (0,-0.1) arc (-90:90:0.1) -| ++ (-2,0) -- ++ (-2,-0.05) -- ++ (-0.5,-0.05) -- ++ (0.5,-0.05)-- ++ (2,-0.05) -- cycle;
 \end{scope}

 \filldraw[color=gray!70] (-2,0) arc (180:110:2) arc (110:-70:0.2) arc (110:180:1.6) arc (0:-180:0.2);
 \filldraw[color=white] (-1.9,0) arc (180:110:1.9) arc (110:-70:0.1) arc (110:180:1.7) arc (0:-180:0.1);

}
}

\begin{tikzpicture}[remember picture, overlay] 
\path [transform shape](5,0) pic{circlet};
\end{tikzpicture}

\end{document}

答案1

filldraw您可以使用一个draw命令来控制厚度,而不是两个命令line width

\documentclass[12pt,a4paper,twoside]{book}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{tikz}

\begin{document}

\tikzset{circlet/.pic = {%
 \filldraw[color=gray] (0,-0.1) arc (-90:90:0.1) -| ++ (-2,0) -- ++ (-2,-0.05) -- ++ (-0.5,-0.05) -- ++ (0.5,-0.05)-- ++ (2,-0.05) -- cycle;
 \begin{scope}[rotate=-20,transform shape]
   \filldraw[color=gray] (0,-0.1) arc (-90:90:0.1) -| ++ (-2,0) -- ++ (-2,-0.05) -- ++ (-0.5,-0.05) -- ++ (0.5,-0.05)-- ++ (2,-0.05) -- cycle;
 \end{scope}

\draw[color=gray!70,line width=4pt] (-2,0) arc (180:110:2) arc (110:-70:0.2) arc (110:180:1.6) arc (0:-180:0.2); 
}
}

\begin{tikzpicture}[remember picture, overlay] 
\path [transform shape](5,0) pic{circlet};
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容