확장되고 수직으로 시작하고 끝나는 TikZ 코일

확장되고 수직으로 시작하고 끝나는 TikZ 코일

path목표는 다음과 같이 하나의 / draw명령 으로 시작과 끝 부분에 직사각형 굴곡이 있는 코일을 그리는 것입니다 .

올바른 코일

코일 자체는 수평 경로이며 끝은 양쪽 끝에서 수직, 즉 90도 각도로 내려갑니다.

그러나 시작은 작동하지만 끝은 올바른 모양을 형성하는 기본 경로(녹색)에도 불구하고 작동하지 않습니다.

비뚤어진 코일

코드 포함

\documentclass{article}

\usepackage{tikz}

\usetikzlibrary{
    decorations.pathmorphing,
    arrows
}

\begin{document}
    \begin{tikzpicture}[
        thiscoil/.style={%
            decorate,%
            decoration={%
                coil,
                aspect=0.3,
                segment length=0.5em,
                amplitude=0.5em,
                pre=lineto,
                post=lineto,
                pre length=1.5em,
                post length=1.5em,
            },
            o-o,
        },
        thick
    ]
        % Same path, without coil:
        \draw[transform canvas={yshift=3em}, green] (0,0) |- ++ (5em,1em) -| ++ (0.5em,-1em);
        % A coil with horizontal straight endings:
        \draw[thiscoil, blue] (0,0) |- ++ (5em,1em) -| ++ (0.5em,-1em);
        % A coild without horizontal endings, only vertical ones:
        \draw[thiscoil, transform canvas={yshift=-3em}, red] (0,0) |- ++ (5em,1.5em) -| ++ (0.5em,-1.5em);
    \end{tikzpicture}
\end{document}

기껏해야 코일은 빨간색 예의 왼쪽/시작과 같아야 합니다.양쪽 끝에. 파란색의 시작/왼쪽 및 빨간색 경로의 끝/오른쪽과 같이 코일에 수평 들여쓰기가 있는 경우에도 괜찮습니다.

어떻게 할 수 있습니까?

답변1

다음은 Circuitikzcuteinductorshape를 사용하는 솔루션입니다. 위쪽은 커넥터 사이에 지정된 너비를 사용하고 아래쪽은 노드의 "자연스러운" 너비를 사용합니다( 를 사용하여 조정 가능 \ctikzset).

\documentclass[border=2pt]{standalone}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}
  \draw (0,1) to[short,o-] ++(0,1em) to[cute inductor] ++(5em,0) to[short,-o] ++(0,-1em);
  \draw (0,0) node[ocirc]{} |- ++(0.5pt,1em) node[cuteinductorshape,anchor=west,name=coil]{}
    (coil.east) -| ++(0.5pt,-1em) node[ocirc]{};
\end{tikzpicture}
\end{document}

데모

답변2

재미삼아 pstricks. \psCoil명령이 백그라운드에서 평면의 3D 나선 투영을 사용하고 인수가 이 나선의 시작 각도와 끝 각도이기 때문에 일부 좌표 값은 시행착오를 통해 찾아야 했습니다 .

\documentclass{article}
\usepackage{pst-coil, auto-pst-pdf}

\begin{document}

\begin{pspicture}(-1,0.5)(4,3)
\psset{coilheight=0.6, coilwidth =1.5, dotsize=4pt}
\rput(2,0){\psCoil{-110}{1910}}
\psline{-o}(1.506,-0.25)(1.506,-1.25)\psline{-o}(5.675,-0.25)(5.675,-1.25)
\end{pspicture}

\end{document} 

여기에 이미지 설명을 입력하세요

관련 정보