平铺剪辑图片中的幽灵线

平铺剪辑图片中的幽灵线

我正在尝试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}

在此处输入图片描述

在此处输入图片描述

相关内容