如何绘制以省略号结尾的线条?

如何绘制以省略号结尾的线条?

在 Tikz 中,绘制线条的最简单方法是什么,其中一端或两端都以 ... 的形式继续延伸,以表示它们无限延伸?我可以用省略号定义箭头吗?

答案1

事实上,最简单的方法是创建自定义箭头。

版本 3.0.0,新增arrows.meta

代码

\documentclass[tikz]{standalone}
\usetikzlibrary{backgrounds}
\usetikzlibrary{arrows.meta}
\tikzset{
  .../.tip={[sep=0pt 1]
    Round Cap[]. Circle[length=0pt 1] Circle[length=0pt 1] Circle[length=0pt 1, sep=0pt]},
  sss/.tip={[sep=0pt 1]
    Butt Cap[] . Square[length=0pt 1] Square[length=0pt 1] Square[length=0pt 1, sep=0pt]}}
\tikzset{every picture/.append style={gridded,line width=2pt}}
\begin{document}
\tikz \path[...-...] (0,0) edge (1,1);
\tikz \path[sss-sss] (0,0) edge (1,1);
\end{document}

输出

在此处输入图片描述 在此处输入图片描述

版本 2.10,旧箭头

我创建了两个,...ssss用于s包括三个小点(或平方)的正方形。查看示例和设置line cap如何影响间距。这些点可能太细,不适合通常的线宽,.4pt因此您可以更改半径、边长或点之间的间距或……

*其他解决方案可能涉及和箭头的组合space以及使用特殊的dash pattern

代码

\documentclass[tikz]{standalone}
\usetikzlibrary{backgrounds}
\makeatletter
\pgfarrowsdeclare{...}{...}{%
  \pgfutil@tempdima\pgflinewidth
  \pgfarrowsrightextend{+6.5\pgfutil@tempdima}%
  \pgfarrowsleftextend{+6.5\pgfutil@tempdima}%
}{
  \pgfutil@tempdima\pgflinewidth
  \pgfpathcircle{\pgfqpoint{+2\pgfutil@tempdima}{+0pt}}{+.5\pgfutil@tempdima}%
  \pgfpathcircle{\pgfqpoint{+4\pgfutil@tempdima}{+0pt}}{+.5\pgfutil@tempdima}%
  \pgfpathcircle{\pgfqpoint{+6\pgfutil@tempdima}{+0pt}}{+.5\pgfutil@tempdima}%
  \pgfusepathqfill
}
\pgfarrowsdeclare{sss}{sss}{%
  \pgfutil@tempdima\pgflinewidth
  \pgfarrowsrightextend{+6\pgfutil@tempdima}%
  \pgfarrowsleftextend{+6\pgfutil@tempdima}%
}{
  \pgfutil@tempdima\pgflinewidth
  \pgfpathrectangle{\pgfqpoint{+2\pgfutil@tempdima}{+.5\pgfutil@tempdima}}{\pgfqpoint{-\pgfutil@tempdima}{-\pgfutil@tempdima}}
  \pgfpathrectangle{\pgfqpoint{+4\pgfutil@tempdima}{+.5\pgfutil@tempdima}}{\pgfqpoint{-\pgfutil@tempdima}{-\pgfutil@tempdima}}
  \pgfpathrectangle{\pgfqpoint{+6\pgfutil@tempdima}{+.5\pgfutil@tempdima}}{\pgfqpoint{-\pgfutil@tempdima}{-\pgfutil@tempdima}}
  \pgfusepathqfill
}
\makeatother
\tikzset{every picture/.append style={gridded,line width=2pt}}
\begin{document}
\tikz \path[...-...,line cap=round] (0,0) edge (1,1);
\tikz \path[...-..., line cap=rect] (0,0) edge (1,1);
\tikz \path[sss-sss] (0,0) edge (1,1);
\end{document}

输出

在此处输入图片描述 在此处输入图片描述 在此处输入图片描述

相关内容