Tikz:如何从线上删除项目符号以及如何在没有空格的情况下将线绘制到节点

Tikz:如何从线上删除项目符号以及如何在没有空格的情况下将线绘制到节点

我正在尝试在 tikz 中绘制一个简单的示意图,但面临两个问题:

  1. 如下图所示,水平线没有连接到垂直线,我在垂直线上直接放置了一个节点。我怎样才能强制将这条线绘制到没有空格的节点上?
  2. 当尝试绘制一端带有项目符号的线条时,项目符号会出现在两端。我该怎么做,才能删除标记端(如下图所示)的项目符号?我该如何实现,才能使下方填充的项目符号绘制在水平线的中间?

错误的项目符号以及行与节点之间的空格

我的代码如下:

\usetikzlibrary{circuits.ee.IEC}

\begin{tikzpicture}[circuit ee IEC]

\node [] (v1) at (0,1) {};
\node [] (v2) at (0,-1) {};
\node [] (v3) at ([yshift=-0.75cm] v1) {};
\node [] (v4) at ([xshift=-2cm] v3) {};
\node [resistor, draw=black, rotate=90] (pullUpRes) at (-1,1.25) {};
\node [] (v5) at ([yshift=1cm] pullUpRes) {};

\draw [] (v1) edge (v2);
\draw [] (v3) edge (v4);
\draw [-*] (pullUpRes.west) edge ([yshift=-1cm] pullUpRes);
\draw [-o] (pullUpRes.east) edge (v5);

\end{tikzpicture}

谢谢你的帮助。

答案1

不确定,这是否是您要查找的输出:

\documentclass[11pt,tikz]{standalone}
\usetikzlibrary{circuits.ee.IEC}

\begin{document}
\begin{tikzpicture}[circuit ee IEC]
\coordinate (v1) at (0,1);
\coordinate (v3) at (0,0.25);
\node [resistor, draw=black, rotate=90] (pullUpRes) at (-1,1.25) {};

\draw [] (v1) -- ++(0,-2);
\draw [] (v3) -- ++(-2,0);
\draw [-*] (pullUpRes.west) -- ++(0,-0.5);
\draw [-o] (pullUpRes.east) -- ++(0,0.5);
\end{tikzpicture}
\end{document}

请注意,这edge将始终在两端添加提示。此外,将xshiftyshift与结合起来coordinates通常会导致不良行为。

当然,您也可以使用带有选项positioning的库,但这实际上取决于您的图像的复杂程度。below = of <name of the node>node distance = <length>

简化图像的另一种可能性是使用intersections

编辑:如果您需要黑点正好位于水平线上,您也可以使用该calc库:

\documentclass[11pt,tikz]{standalone}
\usetikzlibrary{circuits.ee.IEC,calc}

\begin{document}
\begin{tikzpicture}[circuit ee IEC]
\coordinate (v1) at (0,1);
\coordinate (v2) at (0,0.25);
\coordinate (v3) at ($(v2)+(-2,0)$);
\node [resistor, draw=black, rotate=90] (pullUpRes) at (-1,1.25) {};

\draw [] (v1) -- ++(0,-2);
\draw [red] (v2) -- ++(-2,0);
\draw [-*] (pullUpRes.west) -- ($(v2)!.5!(v3)$);
\draw [-o] (pullUpRes.east) -- ++(0,0.5);
\end{tikzpicture}
\end{document}

相关内容