TikZ 角缺失

TikZ 角缺失

问题:

  1. 为什么这条数轴的顶角缺失了?
  2. 为什么这条数轴的底角或其他角都没有缺失?
  3. 我如何确保角落始终在那里?
\documentclass{article}

\usepackage[left=1.5cm,right=1.5cm,top=2cm,bottom=2cm]{geometry}
\usepackage{tikz}


\begin{document}

\begin{tikzpicture}[line width=0.08cm]

\draw (0,0)--(5,0);
\draw (0,0.3)--(5,0.3);

\foreach \x in {0,...,5}
 {
 \node at (\x,-0.55) {\x};
 \draw (\x,-0.3)--(\x,0.3);
 }

\foreach \x in {0,...,5}
 \draw (\x,0)--(\x,0.3);

\end{tikzpicture}

\end{document}

该代码产生如下结果:

在此处输入图片描述

答案1

这里的问题是线条在某个点结束——正是在这个点。看一下这张图片(下面的 MWE):

第一张图片

黑点标记 (0,0)。两条线都绘制到 (0,0),由于线宽较粗,看起来好像缺少了它们之间的角,但实际上这些线完全符合指定要求:以 (0,0) 结束。

然而,有一些方法可以获得角落:

  1. 制作经过 (0,0) 的路径在那里有一个实角
  2. 用于line cap = rect在每条线的末尾添加一些额外的位,这样红线和蓝线的重叠就会形成一个角(影响两端!)。
  3. 将路径延长至线宽的一半(仅影响使用= start 或= endshorten < = 0.5\pgflinewidth指定的端点)shorten <shorten >

从左到右依次为 1 至 3:

备择方案

\documentclass{article}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[line width = 4mm]
   \draw [red] (0,-2) -- (0,0);
   \draw [blue] (2,0) -- (0,0);
   \fill (0,0) circle [radius = 1pt];
   \begin{scope}[xshift=25mm]% solution 1
      \draw [red] (0,-2) -- (0,0) -- (2,0);
      \fill (0,0) circle [radius = 1pt];
   \end{scope}
   \begin{scope}[xshift=50mm]% solution 2
      \draw [red,  line cap=rect] (0,-2) -- (0,0);
      \draw [blue] (2,0) -- (0,0);
      \fill (0,0) circle [radius = 1pt];
   \end{scope}
   \begin{scope}[xshift=75mm]% solution 3
   \draw [red, shorten > = -0.5\pgflinewidth] (0,-2) -- (0,0);
   \draw [blue] (2,0) -- (0,0);
   \fill (0,0) circle [radius = 1pt];
   \end{scope}
\end{tikzpicture}
\end{document}

对于您的代码,我将使用版本 1 并在水平线上添加小垂直部分:

结果

\documentclass{article}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[line width=0.08cm]
\draw (0,0) -- (5,0);
\draw (0,0.2) -- (0,0.3) -- (5,0.3) -- (5,0.2);
\foreach \x in {0,...,5}
 {
  \node at (\x,-0.55) {\x};
  \draw (\x,-0.3)--(\x,0.3);
 }
\foreach \x in {0,...,5}
 \draw (\x,0)--(\x,0.3);
\end{tikzpicture}
\end{document}

相关内容