Я определил две формы: myComponent1
, которая включает два якоря ( PinA
и PinB
), и myComponent2
, которая включает один якорь ( PinA
). Я ищу руководство о том, как напрямую соединить PinA
из myComponent1
в из PinA
с myComponent2
помощью горизонтального провода. Ниже вы найдете мой код LaTeX вместе с соответствующим выводом. Наконец, я включил желаемый результат.
КОД:
\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}
ВЫХОД:
ЖЕЛАЕМЫЙ РЕЗУЛЬТАТ:
решение1
Если у двух фигур якоря находятся в разных вертикальных положениях, вы (очевидно) не сможете соединить их горизонтальной линией.
Что вы можете сделать, так это нарисовать первую фигуру, провести горизонтальную линию, а затем добавить вторую фигуру с помощью якоря:
\draw (0,0) node[myComponent1, blue] (C1) {};
\draw (C1.PinA) -- ++(3,0) node[myComponent2, red, anchor=PinA] (C2) {};
В любом случае, это не имеет ничего конкретного circuitikz
, это просто ТикZ... полный 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}