用 2 个点绘制连续线

用 2 个点绘制连续线

有没有办法用 pgfplot/tikz 在我指定的域内仅使用 2 个点(即它会自行延伸到这些点)绘制一条连续线?

答案1

您可以使用shorten负长度来延长边缘。

\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\node (a) {A};
\node [right of=a,node distance=3em] (b) {B};
\draw [shorten >=-3em,shorten <=-3em] (a) edge (b);
\end{tikzpicture}
\end{document}

输出

答案2

使用 PSTricks。

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-eucl}

\begin{document}
\begin{pspicture}[showgrid=false](6,4)
    \pstGeonode[PosAngle=-90](2,2){A}(4,2){B}
    \pstLineAB[nodesep=-1]{A}{B}
\end{pspicture}
\end{document}

在此处输入图片描述

各种各样的

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-eucl}

\begin{document}
\multido{\r=.0+-0.2}{11}{%
\begin{pspicture}[showgrid=false](6,4)
    \pstGeonode[PosAngle=-90](2,2){A}(4,2){B}
    \pstLineAB[nodesep=\r]{A}{B}
\end{pspicture}}
\end{document}

在此处输入图片描述

答案3

您还可以使用线性回归来计算直线,并为 ddesire 域绘制该直线。以下代码指定了 的点(1,1)和 ,(3,5)并绘制了它们之间的直线domain=-5:5

在此处输入图片描述

笔记:

  • 根据您的应用,这可能有点过度,但是此解决方案提供了两点之间线的实际“图形”(这可能是或可能不是所希望的)。
  • 请注意,这似乎不适用于垂直线,因此需要特殊处理。

代码:

\documentclass{article}
\usepackage{pgfplots,pgfplotstable}

\begin{document}
\begin{center}
\begin{tikzpicture}
  \begin{axis}[
     axis x line=middle, axis y line=middle,
     xlabel=$x$,
     ylabel=$y$,
     grid,
     ]
  \addplot table [y={create col/linear regression={}}]
  {
    X    Y
    1    1
    3    5
  };
    \xdef\slope{\pgfplotstableregressiona}   
    \xdef\yintercept{\pgfplotstableregressionb}
  \addplot [draw= red, ultra thick, domain=-5:5] (x,\slope*x+\yintercept);
  \end{axis}
\end{tikzpicture}
\end{center}
\end{document}

答案4

您可以使用 tikzlibraly 的另一种方式calc来延长线路。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\begin{tikzpicture}
\node (a) {A};
\node [right of=a,node distance=3em] (b) {B};
\draw ($(a)!-1.5em!(b)$) -- ($(a)!4.5em!(b)$);
\end{tikzpicture}
\end{document}

相关内容