TikZ:如何删除元素内不需要的线?(类似于TRIM)

TikZ:如何删除元素内不需要的线?(类似于TRIM)

下面,我只想要外边缘。我可以用来fill=white删除不需要的圆形部分。如何删除矩形不需要的边缘?

\documentclass[a4paper]{article}

\usepackage{tikz}


\begin{document}
  \begin{tikzpicture}
        \draw (0,0) circle [radius=2cm];
        \draw[fill=white] (0,1) rectangle (3,2);
  \end{tikzpicture}

\end{document}

在此处输入图片描述

当我有

  \begin{tikzpicture}
        \draw (0,0) circle [radius=2cm];
        \draw[fill=white] (0,1) rectangle (3,2);
        \path[fill=white] (0,0) circle [radius=2cm];
  \end{tikzpicture}

圈不厚。

答案1

通常的解决方案是使用\clip路径,但在这种情况下,您可以简单地绘制后部circle并使用fill=whitefill opacity=1由于您只想要外边缘,因此您可以随后在矩形中“填充”并调整线条的宽度:

在此处输入图片描述

代码:

\documentclass[a4paper]{article}

\usepackage{tikz}
\usetikzlibrary{calc}
 
\begin{document}
  \begin{tikzpicture}[ultra thick]
        \draw (0,1) rectangle (3,2);
        \draw [fill opacity=1, fill=white] (0,0) circle [radius=2cm];
        \draw [draw=none,fill=white, fill opacity=1] 
                ($(0,1)+(0.5\pgflinewidth,0.5\pgflinewidth)$) rectangle ($(3,2)-(0.5\pgflinewidth,0.5\pgflinewidth)$);
  \end{tikzpicture}

答案2

以下是一行代码:

\documentclass[tikz,border=5pt]{standalone}

\begin{document}
  \begin{tikzpicture}[ultra thick]
        \draw[fill=olive!30] (3,2) -- (0,2) arc (-270:25:2cm) -| (3,2) --cycle;        
  \end{tikzpicture}
\end{document}

在此处输入图片描述

答案3

如果可以的话,一种clip方法

在此处输入图片描述

代码

\documentclass[border=10pt]{standalone}%[a4paper]{article}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[ultra thick]
\draw (0,0) circle [radius=2cm];
\draw[fill=white] (0,1) rectangle (3,2);
\begin{scope}
\clip [] (0,0) circle [radius=2cm-0.5\pgflinewidth]; 
\fill[white]  (0,0) circle [radius=2cm];
\end{scope}
\end{tikzpicture}

\end{document}

相关内容