![tikz 圆形图片-在里面压出一个形状?](https://linux22.com/image/347254/tikz%20%E5%9C%86%E5%BD%A2%E5%9B%BE%E7%89%87-%E5%9C%A8%E9%87%8C%E9%9D%A2%E5%8E%8B%E5%87%BA%E4%B8%80%E4%B8%AA%E5%BD%A2%E7%8A%B6%EF%BC%9F.png)
我刚刚画了一个圆圈。它看起来像这样:
现在我坚持使用弧形部分。它由两个填充绘制组成。一个使用较浅的灰色,另一个在第一个里面使用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}