TikZ——线帽延伸到网格线边界之外

TikZ——线帽延伸到网格线边界之外

我正在绘制一条线大号在直角坐标系中。坐标系有网格线。(我使用\draw[辅助线] (-5,-5) 网格 (5,5),因此网格线在坐标系中形成一个 10×10 的框。)该线大号非常厚。我已经延长了大号到网格线的边缘。问题是,当你放大这两个点时大号与网格线的边界相交,线帽的角为大号稍微超出网格线。有没有办法绘制大号到网格线的边缘,只有线帽大号一旦到达网格线就会被切断吗?基本上,我希望 L 延伸到网格线,并且我不希望任何东西(包括 L 的线帽)超出网格线。

答案1

选择好的 line cap(例如butt)可以提供帮助...但这还不够(看第一条蓝线)。使用区域clip是解决方案(例如我的第二个scope)。

\documentclass[tikz]{standalone}
\newcommand\redpt[1]{\fill[red] (#1) circle[radius=1mm];}
\begin{document}
\begin{tikzpicture}
  \begin{scope}
    \draw[help lines] (-5,0) grid (0,5);

    \draw[line width=5mm,line cap=round] (-5,4) -- (0,4);
    \redpt{-5,4}
    \draw[line width=5mm,line cap=rect] (-5,3) -- (0,3);
    \redpt{-5,3}
    \draw[line width=5mm,line cap=butt] (-5,2) -- (0,2);
    \redpt{-5,2}
    \draw[line width=5mm,line cap =butt,blue] (-5,1) -- (0,3.5);
    \redpt{-5,1}
  \end{scope}

  \begin{scope}[shift={(0,-5.2)}]
    \draw[help lines] (-5,0) grid (0,5);

    \clip (-5,0) rectangle (0,5);

    \draw[line width=5mm,line cap=round] (-5,4) -- (0,4);
    \redpt{-5,4}
    \draw[line width=5mm,line cap=rect] (-5,3) -- (0,3);
    \redpt{-5,3}
    \draw[line width=5mm,line cap=butt] (-5,2) -- (0,2);
    \redpt{-5,2}
    \draw[line width=5mm,line cap =butt,blue] (-5,1) -- (0,3.5);
    \redpt{-5,1}
  \end{scope}
\end{tikzpicture}
\end{document}

在此处输入图片描述

相关内容