我正在尝试pic
像这样平铺两个剪辑元素。
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\tikzset{
one/.pic = {
\path[clip] (0,0) -- (1,0) -- (1,1) -- cycle;
\draw [double=white, draw=black, line cap = rect] (1,0) -- (0.6,0.6);
}
}
\path pic {one} pic[rotate=90,yscale=-1] {one};
\end{tikzpicture}
\end{document}
我看到了幽灵般的线条,既在图片的边界上,也在图片相邻的地方。
我该如何解决?
答案1
这是 的一个不幸特性double
,它实际上并没有画出双线,而是一条粗线,中间有一条较细的白线。有很多相关问题,例如这个。假设您不想摆弄查看器设置,您可以使用 将双线绘制为真正的双线calc
。此处的提议将双线绘制为一条直线,因此它不是 的真正概括double
。而且由于您无论如何都会剪辑,因此您可以向两个方向延长线。
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\tikzset{
real double straight line/.style={to path={
($(\tikztostart)!#1!90:(\tikztotarget)$) --
($(\tikztotarget)!#1!-90:(\tikztostart)$)
($(\tikztostart)!#1!-90:(\tikztotarget)$) --
($(\tikztotarget)!#1!90:(\tikztostart)$)}},
real double straight line/.default=0.5pt,
one/.pic = {
\path[clip] (0,0) -- (1,0) -- (1,1) -- cycle;
\draw [real double straight line] (1+0.1*0.4,-0.1*0.6) to (1-1.1*0.4,1.1*0.6);
}
}
\path pic {one} pic[rotate=90,yscale=-1] {one};
\end{tikzpicture}
\end{document}