CircuiTikZ를 사용하여 전기 회로를 만들고 있습니다.
이전에 상대 좌표를 사용하여 생성된 특정 지점에 연결해야 하는 경우가 많습니다.
지금은 이 좌표를 미리 계산해야 합니다. 대신 경로 생성 중에 "좌표 변수"를 생성하고 나중에 이 변수를 사용할 수 있기를 원합니다. 또 다른 방법은 양극 단자의 좌표를 추출하는 것입니다.
필요한 결과
솔루션 1(절대 좌표)
이 솔루션은 매우 취약한 코드로 이어지기 때문에 허용되지 않습니다.
\begin{circuitikz}
\draw (0,0) to [R=$R$] ++(2,0) to [R=$R$] ++(2,0);
\draw (0,0) -- (0,1) to [R=$R$] (4,1) -- (4,0);
\end{circuitikz}
솔루션 2(비밀한 수학 사용)
이것이 나의 현재 솔루션입니다. 분명히 MWE이기 때문에 여기서는 간단하고 별 문제가 아닌 것처럼 보이지만 내 계획에서는 상당히 복잡해집니다.
\newcommand{\mylength}{2}
\begin{circuitikz}
\draw (0,0) to [R=$R$] ++(\mylength,0) to [R=$R$] ++(\mylength,0);
\draw (0,0) -- (0,1) to [R=$R$] (\mylength*2,1) -- (\mylength*2,0);
\end{circuitikz}
선호하는 솔루션 1번(앵커)
불행하게도 앵커가 위에 있기 때문에 이것은 작동하지 않습니다.양극 자체, 터미널에는 없습니다. ( \currentcoordinate
마르코가 찍은여기).
\makeatletter
\newcommand\currentcoordinate{\the\tikz@lastxsaved,\the\tikz@lastysaved}
\makeatother
\begin{circuitikz}
\draw (0,0) to [R=$R$] ++(2,0) to [R=$R$, name=MyResistor] ++(2,0);
\draw (0,0) -- (0,1) to [R=$R$] (MyResistor.east |- \currentcoordinate) -- (MyResistor.east);
\end{circuitikz}
선호 솔루션 2번 (변수에 좌표 기억하기)
이것은 완벽할 것입니다.
\begin{circuitikz}
\draw (0,0) to [R=$R$] ++(2,0) to [R=$R$, name=MyResistor] ++(2,0) [\MyVariable=\currentcoordinate];
\draw (0,0) -- (0,1) to [R=$R$] (\MyVariable |- \currentcoordinate) -- (\MyVariable);
\end{circuitikz}
답변1
명명된 좌표가 이미 TikZ에 존재합니다. 심지어 당신이 제안한 것보다 더 멋진 구문을 가지고 있습니다.
\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw (0,0) to [R=$R$] ++(2,0) to [R=$R$, name=MyResistor] ++(2,0) coordinate (lr);
\draw (0,0) -- (0,1) coordinate (ul) to [R=$R$] (lr |- ul) -- (lr);
\end{circuitikz}
\end{document}
단일 경로에 전체를 그릴 수도 있고 명명된 좌표를 전혀 사용하지 않을 수도 있습니다.
\documentclass{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{circuitikz}
\draw ( 0,0) to [R=$R$]
++( 2,0) to [R=$R$]
++( 2,0) to [short]
++( 0,1) to [R,l_=$R$]
++(-4,0) to[short]
( 0,0) -- cycle;
\end{circuitikz}
\end{document}