회로에 컬러박스를 넣는 방법

회로에 컬러박스를 넣는 방법

기본적으로 이번에는 회로 주위에 색상 상자를 배치하고 싶습니다. 또한 더 어두운 와이어를 배치하고 싶습니다. 내 코드는 다음과 같습니다.

\documentclass{article}
\usepackage[utf8]{inputenc} 
\usepackage{tikz}  
\usepackage{mathtools}  
\usepackage[american]{circuitikz}
\usetikzlibrary{shapes,arrows}  
\renewcommand*\contentsname{Contenido} 
\begin{document}

\begin{figure}[h]
\begin{circuitikz} 

%Diodo

    \draw 
    [short, o-] to (0.3,0)
    ;
    \ctikzset{bipoles/diode/height=0.4, bipoles/diode/width=0.4,} 
    \draw  
    (0.3,0)  node[below right = 4.15mm,align=center]{+} to[diode, a = $v_\gamma$, i = $i$]
  (3,0) node[below left = 4.15mm,align=center]{-} 
  ; 
  \draw 
  (3,0) [short,-o] to (3.2,0)
  ;  
  
 %Circuito abierto
  
\draw 
(5,0) [short, o-] to (6,0) 
to [-o,open] (8,0)  
; 
\draw 
(7.5,0) [short, o-] to (8.5,0)  
to [-o,open] (10.5,0) 
; 
\draw 
(5,0) node[above = 4mm, right = 1mm,align=center]{$\textcolor{red}{i}$ $\color{red}\longrightarrow$ } node[below = 10mm, right = 6mm,align=center]{$v<0\ $,  $i=0$} to [open, v =$v$ ] (8.5,0)
; 
%Corto circuito

\draw 
(10,0) [short, o-] to (11,0) 
to [-o,short] (13,0)  
; 
\draw 
(12.5,0) [short, o-] to (13.5,0)  
to [-o,short] (13.5,0) 
; 
\draw 
(10,0) node[above = 4mm, right = 1mm,align=center]{$i$ $\longrightarrow$ } node[below = 10mm, right = 6mm,align=center]{$i>0\ $,  $v=0$} to [open, v =$v$,red] (13.5,0)
; 


\end{circuitikz} 
\caption{Modelo Ideal}
\end{figure}  
\end{document}

여기에 이미지 설명을 입력하세요

내가 생각하는 모습은 대략 다음과 같습니다.

여기에 이미지 설명을 입력하세요

도움을 주셔서 감사합니다!

답변1

Ti를 좀 추가했어요케이Z 명령

\documentclass{article}
\usepackage{geometry}
\usepackage[utf8]{inputenc} 
\usepackage{tikz}  
\usepackage{mathtools}  
\usepackage[american]{circuitikz}
\usetikzlibrary{shapes,arrows}  
\renewcommand*\contentsname{Contenido} 
\begin{document}

\begin{figure}[h]
\centering
\begin{circuitikz} 

%Diodo

    \draw 
    [short, o-] to (0.3,0)
    ;
    \ctikzset{bipoles/diode/height=0.4, bipoles/diode/width=0.4,} 
    \draw  
    (0.3,0)  node[below right = 4.15mm,align=center]{+} to[diode, a = $v_\gamma$, i = $i$]
  (3,0) node[below left = 4.15mm,align=center]{-} 
  ; 
  \draw 
  (3,0) [short,-o] to (3.2,0)
  ;  

 %Circuito abierto

\fill[cyan!20] (5.8,-.2) rectangle (7.7,.2);
\draw 
(5,0) [short, o-] to (6,0) 
to [-o,open] (8,0)  
; 
\draw 
(7.5,0) [short, o-] to (8.5,0)  
to [-o,open] (10.5,0) 
; 
\draw 
(5,0) node[above = 4mm, right = 1mm,align=center]{$\textcolor{red}{i}$ $\color{red}\longrightarrow$ } node[below = 10mm, right = 6mm,align=center]{$v<0\ $,  $i=0$} to [open, v =$v$ ] (8.5,0)
; 
%Corto circuito

\fill[cyan!20] (10.8,-.2) rectangle (12.7,.2);
\draw[ultra thick] (11,0) -- (12.5,0);
\draw 
(10,0) [short, o-] to (11,0) 
to [-o,short] (12.5,0)  
; 
\draw 
(12.5,0) [short, o-] to (13.5,0)  
to [-o,short] (13.5,0) 
; 
\draw 
(10,0) node[above = 4mm, right = 1mm,align=center]{$i$ $\longrightarrow$ } node[below = 10mm, right = 6mm,align=center]{$i>0\ $,  $v=0$} to [open, v =$v$,red] (13.5,0)
; 


\end{circuitikz} 
\caption{Modelo Ideal}
\end{figure}  
\end{document}

여기에 이미지 설명을 입력하세요

답변2

여기서는 코드 개선이 아니라 배경 사각형을 추가하는 데 중점을 둡니다. 나는 무슨 일이 일어나고 있는지 더 쉽게 이해할 수 있도록 많은 것들을 매우 명확하게 유지합니다. 귀하의 코드는 많이 단순화될 수 있으며, 이해 가능성을 희생시키면서 추가 내용을 더 효율적으로 만들 수 있습니다.

일부 좌표의 이름을 지정하고 배경 레이어의 직사각형 노드에 맞출 수 있습니다.

\documentclass{article}
\usepackage[utf8]{inputenc} 
\usepackage[american]{circuitikz}
\usetikzlibrary{arrows,fit,backgrounds}
\begin{document}

\begin{figure}[h]
\begin{circuitikz} 

%Diodo

    \draw 
    [short, o-] to (0.3,0)
    ;
    \ctikzset{bipoles/diode/height=0.4, bipoles/diode/width=0.4,} 
    \draw  
    (0.3,0)  node[below right = 4.15mm,align=center]{+} to[diode, a = $v_\gamma$, i = $i$]
  (3,0) node[below left = 4.15mm,align=center]{-} 
  ; 
  \draw 
  (3,0) [short,-o] to (3.2,0)
  ;  

 %Circuito abierto

\draw 
(5,0) [short, o-] to (6,0)coordinate(L1) to [-o,open] (8,0)  
; 
\draw 
(7.5,0) coordinate(R1)[short, o-] to (8.5,0)  
to [-o,open] (10.5,0) 
; 
\draw 
(5,0) node[above = 4mm, right = 1mm,align=center]{$\textcolor{red}{i}$
$\color{red}\longrightarrow$ } node[below = 10mm, right =
6mm,align=center]{$v<0\ $,  $i=0$} to [open, v =$v$ ] (8.5,0)
; 
\begin{scope}[on background layer]
 \node[fit=(L1)(R1),fill=blue!10,inner xsep=1.5mm,inner ysep=2mm]{};
\end{scope}
%Corto circuito

\draw 
(10,0) [short, o-] to (11,0) coordinate(L2)
to [-o,short] (13,0)  
; 
\draw 
(12.5,0) coordinate(R2) [short, o-] to (13.5,0)  
to [-o,short] (13.5,0) 
; 
\draw 
(10,0) node[above = 4mm, right = 1mm,align=center]{$i$ $\longrightarrow$ } node[below = 10mm, right = 6mm,align=center]{$i>0\ $,  $v=0$} to [open, v =$v$,red] (13.5,0)
; 

\begin{scope}[on background layer]
 \node[fit=(L2)(R2),fill=blue!10,inner xsep=1.5mm,inner ysep=2mm]{};
\end{scope}
\end{circuitikz} 
\caption{Modelo Ideal.}
\end{figure}  
\end{document}

여기에 이미지 설명을 입력하세요

관련 정보