如何避免裁剪区域和裁剪线宽之间出现细小的白线

如何避免裁剪区域和裁剪线宽之间出现细小的白线

蓝色区域之间有一条微小的不需要的白线(这是 MWE ;-) )并且黑色边框被剪切线切断。如何避免这两个问题?

它在 png 图像上不可见,但在 pdf 上非常烦人。

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}

\begin{scope}
\clip[rotate=45] (-1,-1) rectangle (0,1) ;
\draw[fill=blue] (0,0) circle (1) ;
\end{scope}

\begin{scope}
\clip[rotate=45] (1,-1) rectangle (0,1) ;
\draw[fill=blue] (0,0) circle (1) ;
\end{scope}


\end{tikzpicture}
\end{document}

答案1

如果不进行任何旋转,这就是您的代码给出的结果:

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}

\begin{scope}
\clip[rotate=0] (-1,-1) rectangle (0,1) ;
\draw[fill=blue] (0,0) circle (1) ;
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

切口清晰可见。部分位移如下:

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}

\begin{scope}
\clip[rotate=0] ([shift={(-0.5\pgflinewidth,-0.5\pgflinewidth)}]-1,-1) rectangle ([shift={(0.5\pgflinewidth,0.5\pgflinewidth)}]0,1) ;
\draw[fill=blue] (0,0) circle (1) ;
\end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

您可以为您的实际代码提供适当的shift量级:\pgflinewidth

\documentclass[tikz]{standalone}

\begin{document}
\begin{tikzpicture}

\begin{scope}
\clip[rotate=45] ([shift={(-\pgflinewidth,-\pgflinewidth)}]-1,-1) rectangle ([shift={(\pgflinewidth,\pgflinewidth)}]0,1) ;
\draw[fill=blue] (0,0) circle (1) ;
\end{scope}

\begin{scope}
\clip[rotate=45] ([shift={(\pgflinewidth,-\pgflinewidth)}]1,-1) rectangle ([shift={(0.5\pgflinewidth,\pgflinewidth)}]0,1) ;
\draw[fill=blue] (0,0) circle (1) ;
\end{scope}


\end{tikzpicture}
\end{document}

在此处输入图片描述

事实上0.5\pgflinewidth就够了,但是为了安全起见\pgflinewidth还是用了。

相关内容