我正在尝试填充由两个半圆组成的路径,并且只想填充它们之间的区域。以下代码无法正常工作。
\documentclass{article}
\usepackage{tikz}
\usepackage[active,pdftex,tightpage]{preview}
\PreviewEnvironment[]{tikzpicture}
\begin{document}
\begin{tikzpicture}
\filldraw[yellow,draw=black] (0em,0em) arc[radius=1em, start angle=180, end angle=0]
(2em,0em) -- (2em,-1em) arc[radius=1em, start angle=0, end angle=180]
(0em,-1em) -- (0em,0em);
\end{tikzpicture}
\end{document}
我得到的是:
另外,如果我使用路径进行剪切,也会使用同样错误的填充区域。有人能弄清楚如何仅填充绘制的半圆内的区域(非凸区域)吗?
答案1
您需要指定一个连续的路径填充才能正常工作。因此,不要指定已经绘制的坐标,因为这会引入不连续性:
\documentclass[tikz,border=5pt]{standalone}
\begin{document}
\begin{tikzpicture}
\filldraw[yellow,draw=black]
(0em,0em)
arc[radius=1em, start angle=180, end angle=0]
-- (2em,-1em)
arc[radius=1em, start angle=0, end angle=180]
-- (0em,0em);
\end{tikzpicture}
\end{document}
答案2
\documentclass[tikz,border=4]{standalone}
\begin{document}
\begin{tikzpicture}
\filldraw[yellow,draw=black] (0,0) arc[radius=1em, start angle=0, end angle=180]
-- ++(0em,-1em) arc[radius=1em, start angle=180, end angle=0]
-- ++(0em,1em) -- cycle;
\end{tikzpicture}
\end{document}