Ich habe zwei Formen definiert: myComponent1
, das zwei Anker ( PinA
und PinB
) enthält, und myComponent2
, das einen Anker ( PinA
) enthält. Ich suche nach Anleitungen, wie ich PinA
von myComponent1
mit PinA
von myComponent2
mithilfe eines horizontalen Drahts direkt verbinden kann. Unten finden Sie meinen LaTeX-Code zusammen mit der entsprechenden Ausgabe. Zuletzt habe ich das gewünschte Ergebnis eingefügt.
CODE:
\documentclass{article}
\usepackage{circuitikz}
%% defining My Component 1
\pgfdeclareshape{myComponent1}{
\anchor{center}{\pgfpointorigin}
\savedanchor\PinA{\pgfpoint{60}{50}}
\anchor{PinA}{\PinA}
\savedanchor\PinB{\pgfpoint{60}{-50}}
\anchor{PinB}{\PinB}
\foregroundpath{
\pgfpathrectanglecorners{\pgfpoint{-60}{-100}}{\pgfpoint{60}{100}}
\pgfusepath{draw}
\pgftext[right, at={\PinA}]{PIN A}
\pgftext[right, at={\PinB}]{PIN B}
}
}
%% defining My Component 2
\pgfdeclareshape{myComponent2}{
\anchor{center}{\pgfpointorigin}
\savedanchor\PinA{\pgfpoint{-60}{0}}
\anchor{PinA}{\PinA}
\foregroundpath{
\pgfpathrectanglecorners{\pgfpoint{-60}{-100}}{\pgfpoint{60}{100}}
\pgfusepath{draw}
\pgftext[left, at={\PinA}]{PIN A}
}
}
\begin{document}
\begin{circuitikz}
\draw (0,0) node[myComponent1, blue] (C1) {};
\draw (8,5) node[myComponent2, red] (C2) {};
\draw (C1.PinA) -- (C2.PinA);
\end{circuitikz}
\end{document}
AUSGABE:
GEWÜNSCHTES ERGEBNIS:
Antwort1
Wenn die Anker der beiden Formen an unterschiedlichen vertikalen Positionen liegen, können Sie sie (offensichtlich) nicht mit einer horizontalen Linie verbinden.
Sie können die erste Form zeichnen, eine horizontale Linie zeichnen und dann mithilfe des Ankers die zweite Form hinzufügen:
\draw (0,0) node[myComponent1, blue] (C1) {};
\draw (C1.PinA) -- ++(3,0) node[myComponent2, red, anchor=PinA] (C2) {};
Wie auch immer, das hat nichts Besonderes zu circuitikz
, es ist einfach TikZ... vollständiges MWE:
\documentclass{article}
\usepackage{tikz}
%% defining My Component 1
\pgfdeclareshape{myComponent1}{
\anchor{center}{\pgfpointorigin}
\savedanchor\PinA{\pgfpoint{60}{50}}
\anchor{PinA}{\PinA}
\savedanchor\PinB{\pgfpoint{60}{-50}}
\anchor{PinB}{\PinB}
\foregroundpath{
\pgfpathrectanglecorners{\pgfpoint{-60}{-100}}{\pgfpoint{60}{100}}
\pgfusepath{draw}
\pgftext[right, at={\PinA}]{PIN A}
\pgftext[right, at={\PinB}]{PIN B}
}
}
%% defining My Component 2
\pgfdeclareshape{myComponent2}{
\anchor{center}{\pgfpointorigin}
\savedanchor\PinA{\pgfpoint{-60}{0}}
\anchor{PinA}{\PinA}
\foregroundpath{
\pgfpathrectanglecorners{\pgfpoint{-60}{-100}}{\pgfpoint{60}{100}}
\pgfusepath{draw}
\pgftext[left, at={\PinA}]{PIN A}
}
}
\begin{document}
\begin{tikzpicture}
\draw (0,0) node[myComponent1, blue] (C1) {};
\draw (C1.PinA) -- ++(3,0) node[myComponent2, red, anchor=PinA] (C2) {};
\end{tikzpicture}
\end{document}