回路図の修正

回路図の修正

初めて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。そうすれば、図は常に正しく拡大縮小されます。

2 番目は、\pgftransformresetnontranslations90 度の回転を明示的に指定するよりも汎用性が高く、余分な労力をかけずにグラフィックを任意の角度で再利用できるようになります。

最後に、AC電源について、この点を指摘したいと思います。質問(素晴らしい回答をしてくれた @Jake に感謝します) 私が投稿しました (ここに投稿したのはこれが初めてですTeX.SE...ああ、懐かしい... :))。

関連情報