变速线连接锚

变速线连接锚

我怎样才能移动一条端点由这样的锚点定义的线?

\draw (i0) -- (i1);

下面的方法不起作用:

\draw[xshift=2pt] (i0) -- (i1);

答案1

方法 1

您可以使用该库calc

\draw[green] (i0) -- ($(i1)+(1,2)$);

方法 2

另一种基于let操作的方法。问题中给出了一个例子TikZ:节点与另一个节点位于相同的 x 坐标,但指定了 y 坐标?

\draw[blue] let \p1 = (i0) in (2,\y1) -- (i1);

方法 3

杰克提到了另一种方法。您直接将偏移设置为坐标。(此方法记录在手册第 13 节“指定坐标”中)

\draw ([xshift=2pt]i0) -- ([xshift=2pt]i1);

i0注意:如果您使用 定义和i1,则使用此方法将正常工作\coordinate。如果您使用 定义i0和 ,i1\node必须给出一个锚点

\draw ([xshift=2pt]i0.center) -- ([xshift=2pt]i1.center);

此限制与其他方法无关。

带结果的完整示例

\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\begin{document}
\verb+Calc+
\begin{tikzpicture}
\node at (0,0) (i0){};
\node at (2,2) (i1){};
\draw[red] (i0) -- (i1);
\draw[blue] ($(i0)+(2,0)$) -- (i1);
\draw[green] (i0) -- ($(i1)+(1,2)$);
\end{tikzpicture}

\verb+let+
\begin{tikzpicture}
\node at (0,0) (i0){};
\node at (2,2) (i1){};
\draw[red] (i0) -- (i1);
\draw[blue] let \p1 = (i0) in (2,\y1) -- (i1);
\draw[green] let \p1 = (i1) in (i0) -- (\x1,4);

\draw[black] let \p0 = (i0), \p1=(i1) in (\x0,2) -- (\x1,3);
\end{tikzpicture}

\verb+shift+ 1
\begin{tikzpicture}
\node at (0,0) (i0){};
\node at (2,2) (i1){};
\draw[red] (i0) -- (i1);
\draw[blue]([xshift=2cm]i0.center) --  (i1);
\draw[green] (i0) -- ([yshift=2cm,xshift=1cm]i1.center);
\end{tikzpicture}

\verb+shift+ 2
\begin{tikzpicture}
\coordinate (i0) at (0,0) ;
\coordinate (i1) at (2,2) ;
\draw[red] (i0) -- (i1);
\draw[blue]([xshift=2cm]i0) --  (i1);
\draw[green] (i0) -- ([yshift=2cm,xshift=1cm]i1);
\end{tikzpicture}
\end{document}

enter image description here

答案2

对我来说,变速线就像蓝色的

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

\begin{tikzpicture} 
\draw [help lines] (0,0) grid (3,2); 
\node[draw](i0) at (0,0) {};
\node[draw](i1) at (2,2) {};
\draw[red] (i0) -- (i1) coordinate[pos=0] (j0) coordinate[pos=1] (j1); 

\draw[thick,blue] ([xshift=1cm]j0) --  ([xshift=1cm]j1);
\draw[thick,purple] let \p0=(i0),\p1=(i1) in
         ([xshift=.5cm]\x0,\y0) --  ([xshift=.5cm]\x1,\y1);        
\end{tikzpicture} 

\end{document}

enter image description here

相关内容