绘制没有坐标的线

绘制没有坐标的线

我想画一条经过点 A 和 B 的线,但不会止于 A 或 B。有人能帮忙吗?我想用它来构造光学。

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{intersections}
\begin{document}
\begin{tikzpicture}
  \draw[very thin, dotted, color=gray,step= 0.5 cm] (-12.1,-5.1) grid (12.1,5.1);
  \draw (-12.1,0) -- (12.1,0) ;
  \draw [<->, ultra thick] (0,-3.2) -- (0,3.2) ;
  \coordinate (L1) at (0,3);
  \coordinate (L2) at (0,-3);
  \coordinate (L3) at (0,1.5); %evenwijdig met hoofdas
  \coordinate (V1) at (9,0);
  \coordinate (V2) at (9,1.5);
  \coordinate (F1) at (4,0);
  \coordinate (F2) at (-4,0);
  \draw [->, thick] (V1) -- (V2) node[right] {voorwerp};
  \fill (F1) circle (2pt) node[below] {$f_1$};
  \fill (F2) circle (2pt) node[below] {$f_2$};
  \draw [name path=A--B] (V2) -- (L3);
  \draw [name path=C--D] (L1) -- (L2);
  \path [name intersections={of=A--B and C--D,by=E}];
  \node [fill=red,inner sep=1pt,label=-90:$E$] at (E) {};
  \draw [name path=K--L] (E) -- (F2);
  \line(4,2){6};
\end{tikzpicture}
\end{document}

答案1

我喜欢使用的替代方案

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
\path (1,0) node[label=above:a,circle,fill=green,](a){} -- 
      (3,2)node[label=above:b,circle,fill=green,](b){} 
      coordinate[pos=1.5](ff) 
      coordinate[pos=-0.5](dd);
\draw (dd) -- (ff);
\end{tikzpicture}    
\end{document}

使用 [pos = xx] 将一个点(节点或坐标)放置在线段之外以及两点之间。负值用于将点放置在第一个点之前。

在此处输入图片描述

答案2

以下是使用该<coord>!<number>!<coord>语法的一种可能性;该线将延伸超过两个坐标 1 厘米:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}

\begin{tikzpicture}
\node[circle,fill=green,label=left:a] (a) at (1,0) {};
\node[circle,fill=green,label=left:b] (b) at (3,2) {};
\draw[blue] ($ (a)!-1cm!(b) $) -- ($ (b)!-1cm!(a) $);
\end{tikzpicture}

\end{document}

在此处输入图片描述

章节13.5.3 部分修饰语的句法13.5.4 距离修饰符的语法包含pgfmanual涉及坐标的有用操作的描述。

缩短选项提供了另一个更简单的选择:

\documentclass{article}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}
\node[circle,fill=green,label=left:a] (a) at (1,0) {};
\node[circle,fill=green,label=left:b] (b) at (3,2) {};
\node[circle,fill=green,label=left:c] (c) at (5,2) {};
\node[circle,fill=green,label=left:d] (d) at (7,0) {};
\draw[blue,shorten >=-1cm,shorten <=-1cm] (a) -- (b);
\draw[red,shorten >=-2cm,shorten <=-1cm] (c) -- (d);
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案3

PSTricks 解决方案仅用于比较目的。

在此处输入图片描述

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

\begin{document}
\begin{pspicture}[showgrid](5,5)
    \pstGeonode[PosAngle={90}]
        (2,2){A}
        (3,3){B}
    \pstLineAB[nodesep=-1,linecolor=red]{A}{B}
\end{pspicture}
\end{document}

如果我们想要不对称的线路延伸,我们可以使用nodesepAnodesepB代替。nodesep

相关内容