我可以绘图,但我不会画暗区。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=1.2]
\draw[thick](0,0)--(4,0);
\draw[thick](4,0)--(4,4);
\draw[thick](4,4)--(0,4);
\draw[thick](0,4)--(0,0);
\draw[thick](4,0)--(0,4);
\draw[ultra thick] (0,0) arc (-90:90:2cm);
\draw[ultra thick] (0,4) arc (-180:0:2cm);
\node at (-0.3,0) {D};
\node at (-0.3,4) {A};
\node at (4.3,0) {C};
\node at (4,4.3) {B};
\end{tikzpicture}
\end{center}
\end{document}
答案1
这是基于Gonzalo Medina 的回答。如果使用even odd rule
进行填充,则可以避免手动剪切和确定范围(但请参见下文)。您还可以通过将标签与绘图命令集成在一起来使代码更紧凑。这是否是优势是另一个问题。但它至少是一种替代方案,这似乎是不可否认的。
请注意,需要两条路径的唯一原因是有些线用 绘制thick
,有些用 绘制ultra thick
。否则,代码可以简化为一条路径。
\documentclass[tikz,border=5pt]{standalone}
\begin{document}
\begin{tikzpicture}[scale=1.2]
\path [fill=gray!60, draw, thick, even odd rule] (4,4) node [above right] {B} rectangle (0,0) node [below left] {D} arc (-90:90:2cm) arc (-180:0:2cm) -| (0,0) node [midway, above left] {A} (4,0) node [below right] {C} -- (0,4);
\draw[ultra thick] (0,4) arc (-180:0:2cm) (0,0) arc (-90:90:2cm);
\end{tikzpicture}
\end{document}
但是,ultra thick
曲线与 A、B 和 D 处的线相交的地方看起来相当凌乱。看起来好像曲线溢出了正方形。这里,最简单的解决方案似乎是剪裁线条ultra thick
。(因此,我建议还是剪裁一下,但在其他部分都绘制并填充完毕后,您只需对绘制得较粗的曲线进行一次剪裁即可。)
\documentclass[tikz,border=5pt]{standalone}
\begin{document}
\begin{tikzpicture}[scale=1.2]
\path [fill=gray!60, draw, thick, even odd rule] (4,4) node [above right] {B} rectangle (0,0) node [below left] {D} arc (-90:90:2cm) arc (-180:0:2cm) -| (0,0) node [midway, above left] {A} (4,0) node [below right] {C} -- (0,4);
\clip (0,0) rectangle (4,4);
\draw[ultra thick] (0,4) arc (-180:0:2cm) (0,0) arc (-90:90:2cm);
\end{tikzpicture}
\end{document}
答案2
裁剪和填充:
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{center}
\begin{tikzpicture}[scale=1.2]
\begin{scope}
\clip (0,0) arc (-90:90:2cm);
\clip (0,4) arc (-180:0:2cm);
\fill[gray!60] (0,0) rectangle (4,4);
\end{scope}
\fill[gray!60] (0,0) arc (-90:0:2cm) arc (-90:0:2cm) -- (4,0) -- (0,0);
\draw[thick] (4,0) -- (0,4) -- (0,0) -- (4,0) -- (4,4) -- (0,4) -- (0,0);
\draw[ultra thick] (0,0) arc (-90:90:2cm);
\draw[ultra thick] (0,4) arc (-180:0:2cm);
\node[below left] at (0,0) {D};
\node[above left] at (0,4) {A};
\node[below right] at (4,0) {C};
\node[above right] at (4,4) {B};
\end{tikzpicture}
\end{center}
\end{document}
A 还改变了标签的定位方式并对正方形的绘制方式做了一些其他更改,但这对于答案来说并不重要。