目标是尝试绘制一个在开始和结束处具有矩形弯曲的线圈,所有操作都使用一个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
这是使用 circuitikz cuteinductorshape 的解决方案。顶部使用连接器之间的指定宽度,而底部使用节点的“自然”宽度(可使用 进行调整\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
后台的命令使用平面上三维螺旋的投影,参数是此螺旋上的起始角度和终止角度。
\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}