CircuiTikZ sobre uma imagem png

CircuiTikZ sobre uma imagem png

Quero desenhar símbolos simples do CircuiTikZ sobre uma imagem .png. É isso que eu quero:

desejado

Isto é o que recebo atualmente:

resultado

Aqui está o meu código:

\begin{figure} [!ht]
\begin{tikzpicture}[x=1cm,y=1cm]
\node at (0,0) {\includegraphics[trim={40cm 55cm 40cm 55cm},clip,height=10cm]{images/MecanismoEscala_primer_ensayo_Variables.png}};
\node at (-3.7634,-1.5117){
\begin{circuitikz}
\draw
 (0,0) --++ (-1.0778,0)
        to [open,v=$v$,o-o] ++(0,0.7012)
        to[short,i=$i_{a}$] ++(1.0663,0);
\end{circuitikz}
};
\end{tikzpicture}
\end{figure}\FloatBarrier

Eu também gostaria de escrever $v$além dos terminais junto com os sinais +- (com esses dois sinais um pouco mais afastados um do outro, não gostei do resultado que obtive).

Responder1

Em primeiro lugar.Nuncaninho tikzpictures! E poste a imagem básica, que neste caso consegui inventar com o GIMP e salvei como arquivo uffa.png.

insira a descrição da imagem aqui

Minha abordagem seria:

  1. carregue a imagem como um nó no início do tikzpicture, para que você possa escrever em cima dela.
  2. Defina algum tipo de grade para ter uma referência fácil.
  3. Desenhe o que quiser, ajuste as coordenadas.
  4. Remova a grade.

Vejamos: as etapas 1 e 2 seriam mais ou menos assim:

\documentclass[tikz]{standalone}
\begin{document}
\begin{tikzpicture}
    \node[anchor=south west,inner sep=0] (image) at (0,0) {%
        \includegraphics[width=10cm]{uffa.png}};
        \draw[red,thin] (0,0) grid[step=1] (10,5);
\end{tikzpicture}
\end{document}

foto com a grade

Você tem 0,0o ponto inferior esquerdo e cada passo da grade tem 1 cm. Agora, o fundo não é branco (espero que você não imprima, caso contrário, mude), então escolhi a cor que resulta ser um azul acinzentado bem escuro com RGB em 33,40,48 (qualquer seletor de cores irá fazer).

Agora desenho o circuito, definindo o cinza-azulado como preenchimento para pólos abertos.

\documentclass[tikz]{standalone}
\usepackage[RPvoltages, american]{circuitikz}
\begin{document}
\begin{tikzpicture}[color=white]% write in white
    \node[anchor=south west,inner sep=0] (image) at (0,0) {%
        \includegraphics[width=10cm]{uffa.png}};
        \draw[red,thin] (0,0) grid[step=1] (10,5);
        \definecolor{mybg}{RGB}{33,40,48}% with a color picker
        \ctikzset{open poles fill=mybg}% tell circuitikz what is background for you
        \draw (4,4) coordinate(a) to[short, i=$i_a$, o-]  ++(1.8,0);
        \draw (a) ++(0,-1) to[short, o-] ++(1.7,0);
        \draw (a) ++(-0.3,0) to[open, v=$v$] ++(0,-1);
\end{tikzpicture}
\end{document}

com grade e circuito

Tentei usar coordenadas relativas e nomeadas sempre que possível, para minimizar o número de números que você precisa ajustar para obter o resultado. Então, você remove a grade e terá:

resultado final

informação relacionada