
Ich möchte einfache CircuiTikZ-Symbole über ein PNG-Bild zeichnen. Das ist, was ich will:
Das ist, was ich derzeit bekomme:
Hier ist mein Code:
\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
Ich würde auch gerne die Ränder der Klemmen zusammen mit den +- Zeichen schreiben $v$
(mit diesen beiden Zeichen etwas weiter voneinander entfernt, nicht wie das Ergebnis, das ich erhalte).
Antwort1
Erstens.NiemalsNest TikzBilder! Und poste das Grundbild, das ich in diesem Fall mit GIMP erstellt und als gespeichert habe uffa.png
.
Mein Vorgehen wäre:
- Laden Sie das Bild als Knoten an den Anfang
tikzpicture
, damit Sie anschließend darüber schreiben können. - Legen Sie eine Art Raster fest, um eine einfache Referenz zu haben.
- Zeichnen Sie, was Sie möchten, und optimieren Sie die Koordinaten.
- Entfernen Sie das Gitter.
Mal sehen: Schritt 1 und 2 würden ungefähr so aussehen:
\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}
Sie haben 0,0
den Punkt unten links und jeder Rasterschritt beträgt 1 cm. Nun ist der Hintergrund nicht weiß (ich hoffe, Sie drucken ihn nicht aus, andernfalls ändern Sie ihn), also habe ich die Farbe gewählt, die ein ziemlich dunkles Blaugrau mit RGB bei 33,40,48 ergibt (jeder Farbwähler ist geeignet).
Nun zeichne ich den Schaltkreis und lege Blaugrau als Füllung für offene Pole fest.
\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}
Ich habe versucht, wo möglich relative und benannte Koordinaten zu verwenden, um die Anzahl der Zahlen zu minimieren, die Sie anpassen müssen, um das Ergebnis zu erhalten. Dann entfernen Sie das Raster und erhalten: