下面的示例使用circuitikz
,但问题是关于在通用中表达坐标tikz
。
请看下面的代码:
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[american]
\draw (0,0) node[npn](Q1){};
\draw (Q1.E) to[R=$R_E$] (0,-2.5) node[ground]{};
\draw [gray] (Q1.E) -- ++(2,0)
coordinate(tmp) to[C, color=gray] (tmp |- 0, -2.5)
node[ground, color=gray]{};
\end{circuitikz}
\end{document}
所有的理由都应该在(x,-2.5)。棘手的是坐标(tmp |- 0, -2.5)
(提示来自这里):我想表达的是坐标的概念,即
(当前路径X,绝对是-2.5)
正如您所见,我找到的解决方案是使用临时节点。有没有更简单的方法来写出该坐标?
顺便说一句,为了更简单,我的意思是直接说“移动到当前值为 x 且 y=-2.5 的坐标”,例如
\draw [gray] (Q1.E) -- ++(2,0)
to[C, color=gray] (\magiccurrentx, -2.5)
node[ground, color=gray]{};
...或者类似的东西。
答案1
如果您想保存代码字符,只需更改coordinate(coordinate_name)
为node(node_name){}
并使用一个\draw
语句,相对坐标,并且您可以使用名为的节点地面坐标来G
找到从电容器短路和地面的命名坐标的坐标交点;更改包括节点在内的颜色使用color=your_fav_color
,在我的情况下为红色。
结果:
梅威瑟:
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[american]
\draw
(0,0)
node[npn](Q1){}
(Q1.E)
to [R=$R_E$] ++(0,-2.5)
node[ground](G){}
;
\draw[color=red]
(Q1.E)
to[short,*-] ++ (2,0) node(C){}
to[C] (C |- G)
node[ground]{}
;
\end{tikzpicture}
\end{document}
选修的:
使用第一个地面和第二个地面可用的两个节点名,并从第二个地面绘制到发射器......
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[american]
\draw
(0,0)
node[npn](Q1){}
(Q1.E)
to [R=$R_E$] ++(0,-2.5)
node[ground](G1){}
;
\draw[color=red]
(G1)++(2,0)
node[ground](G2){}
to[C] (G2 |- Q1.E)
to[short,-*] (Q1.E)
;
\end{tikzpicture}
\end{document}
答案2
这是另一种选择,但我不会称其为更简单。
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}[american]
\draw (0,0) node[npn](Q1){};
\draw (Q1.E) to[R=$R_E$] (0,-2.5) node[ground]{};
\draw [gray] (Q1.E) -- ++(2,0) \pgfextra{\pgfgetlastxy{\xlast}{\ylast}}
to[C, color=gray] (\xlast,-2.5)
node[ground, color=gray]{};
\end{circuitikz}
\end{document}
答案3
与 John Kormylo 的答案非常相似,但没有\pgfextra
(这可能会引起严重麻烦)。与 John 类似,我不确定这是否更优雅。
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\tikzset{magic xy/.code n args={2}{\pgfgetlastxy{#1}{#2}}}
\begin{document}
\begin{circuitikz}[american]
\draw (0,0) node[npn](Q1){};
\draw (Q1.E) to[R=$R_E$] (0,-2.5) node[ground]{};
\draw [gray] (Q1.E) -- ++(2,0) [magic xy={\magicx}{\magicy}]
to[C, color=gray] (\magicx,-2.5)
node[ground, color=gray]{};
\end{circuitikz}
\end{document}
或者使用 calc。两者都能重现您的图片。
\documentclass[border=10pt]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{calc}
\begin{document}
\begin{circuitikz}[american]
\draw (0,0) node[npn](Q1){};
\draw (Q1.E) to[R=$R_E$] (0,-2.5) node[ground]{};
\draw[gray] let \p1=(Q1.E) in (Q1.E) -- ++ (2,0)
to[C, color=gray] (\x1+2cm,-2.5) node[ground, color=gray]{};
node[ground, color=gray]{};
\end{circuitikz}
\end{document}