我正在绘制一条线大号在直角坐标系中。坐标系有网格线。(我使用\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}