Исправление принципиальной схемы

Исправление принципиальной схемы

Создаю несколько электрических цепей в 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... аххх - ностальгия... :)).

Связанный контент