
第一次在tikz中製作一些電路,需要複製下圖
不是一個非常複雜的電路。現在這是我到目前為止所做的
\documentclass[10pt,a4paper]{minimal}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgfpathmoveto{\pgfpoint{-0.8pt}{0pt}}
\pgfpathsine{\pgfpoint{0.4pt}{0.4pt}}
\pgfpathcosine{\pgfpoint{0.4pt}{-0.4pt}}
\pgfpathsine{\pgfpoint{0.4pt}{-0.4pt}}
\pgfpathcosine{\pgfpoint{0.4pt}{0.4pt}}
\pgfusepathqstroke
}
}
}
\begin{document}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info={$q$\ \ $-q$}}] ++(1, 0)
to [resistor={info ={$R$}}] ++(2, 0)
to [current direction' = {info = {$I$}}]++(0,-2)
to [inductor={info=$L$}] (0,-2)
to [ac source={info={$V$}}] (0,0);
\end{tikzpicture}
\end{document}
我不知道到目前為止我做了什麼,我只是從互聯網上隨機複製了示例。節點一團糟,因為我一直在嘗試直到它們全部連接起來。 ++ 是什麼意思?有人可以幫助我了解如何修復我的電路圖以使其類似於上圖嗎? =)
答案1
我的解決方案導致:
代碼:
\documentclass[10pt,a4paper]{minimal}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgftransformrotate{90}
\pgfpathmoveto{\pgfpoint{-0.575pt}{0pt}}
\pgfpathsine{\pgfpoint{0.3pt}{0.3pt}}
\pgfpathcosine{\pgfpoint{0.3pt}{-0.3pt}}
\pgfpathsine{\pgfpoint{0.3pt}{-0.3pt}}
\pgfpathcosine{\pgfpoint{0.3pt}{0.3pt}}
\pgfusepathqstroke
}
}
}
\begin{document}
\scalebox{1.5}{
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info'={$C$}}] ++(1.5, 0)
to [resistor={info'={$R$}}] ++(2.5, 0)
to [current direction = {info' = {$I$}}]++(0,-3)
to [inductor={info'=$L$}] (0,-3)
to [ac source={info={$V$}}] (0,0);
\node[above right] at (0.75,0){$-q$};
\node[above left] at (0.75,0){$q$ \ };
\end{tikzpicture}
}
\end{document}
從起點開始(0,0)
,所有元素都依序顯示。例如,電容器從起點放置到座標(1.5,0)
(這就是++後面的意思)。可以使用 鍵info
或顯示訊息info'
;一般來說,它'
允許您反轉標籤的位置或電流的方向:這就是為什麼在我的範例中我只是current direction
讓箭頭指向下方。
對於關心標籤的內容q
,而-q
不是用鍵插入它們,info
我更喜歡使用簡單的節點:一方面,這允許引入C
和info
,另一方面允許更好地定位q
和-q
。
最後,為了旋轉電壓源的符號,我只需將其添加到您的程式碼中\pgftransformrotate{90}
,並縮小一些大小。
答案2
@ClaudioFiandrino 比我先回答了有關 的問題++
:)
,但我還有一些其他改進/評論要做。請參閱下面修改後的程式碼:
\documentclass[10pt,a4paper]{standalone}
\usepackage{tikz}
\usetikzlibrary{circuits}
\usetikzlibrary{circuits.ee.IEC}
\tikzset{circuit declare symbol = ac source}
\tikzset{set ac source graphic = ac source IEC graphic}
\tikzset{
ac source IEC graphic/.style=
{
transform shape,
circuit symbol lines,
circuit symbol size = width 3 height 3,
shape=generic circle IEC,
/pgf/generic circle IEC/before background=
{
\pgftransformresetnontranslations
\pgfpathmoveto{\pgfpoint{-0.8\tikzcircuitssizeunit}{0\tikzcircuitssizeunit}}
\pgfpathsine{\pgfpoint{0.4\tikzcircuitssizeunit}{0.4\tikzcircuitssizeunit}}
\pgfpathcosine{\pgfpoint{0.4\tikzcircuitssizeunit}{-0.4\tikzcircuitssizeunit}}
\pgfpathsine{\pgfpoint{0.4\tikzcircuitssizeunit}{-0.4\tikzcircuitssizeunit}}
\pgfpathcosine{\pgfpoint{0.4\tikzcircuitssizeunit}{0.4\tikzcircuitssizeunit}}
\pgfusepathqstroke
}
}
}
\begin{document}
\begin{tikzpicture}[circuit ee IEC]
\draw (0,0) to [capacitor={info={$q$\ \ $-q$}}] ++(1, 0)
to [resistor={info ={$R$}}] ++(2, 0)
to [current direction = {info = {$I$}}]++(0,-2)
to [inductor={info=$L$}] (0,-2)
to [ac source={info={$V$}}] (0,0);
\end{tikzpicture}
\end{document}
其輸出如下:
首先,最好將其用作\tikzcircuitssizeunit
單位,這樣數字就始終可以正確縮放。
其次,\pgftransformresetnontranslations
也比明確指定 90 度旋轉更通用,並且使圖形可以在任何角度重複使用,而無需額外的努力。
最後,關於交流電源,我想指出這一點問題(感謝 @Jake 的出色回答)由我發布(這是我在這裡發布的第一個TeX.SE
......啊 - 懷舊...... :)
)。