蓝色区域之间有一条微小的不需要的白线(这是 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
还是用了。