我正在尝试使用 TikZ 生成 LPF 块。
我找到了使用 CircuiTikZ 绘制 LPF 的选项:
\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning}
\usetikzlibrary{arrows.meta}
\usepackage{circuitikz}
\tikzset{
block/.style = {draw, fill=white, rectangle, minimum height=3em, minimum width=3em},
tmp/.style = {coordinate},
input/.style = {coordinate},
output/.style= {coordinate},
pinstyle/.style = {pin edge={to-,thin,black}
}
}
\begin{document}
\begin{tikzpicture}
\node [input, name=input] {};
\node [block, right=20mm of input] (A) {A};
\node [block, right=20mm of A] (B) {B};
\draw [-{Latex[length=2mm]}] (A) to[lowpass](B);
\end{tikzpicture}
\end{document}
这有2个问题:
- 这线连接块穿过它们,而不是从它们的边缘开始。
- 有没有箭头指向 LPF
我曾尝试寻找解决此问题的方法,但没有成功。
(作为最后一个请求,是否也可以使块的边框具有相同的厚度就像 A 和 B?)
答案1
\documentclass[tikz, margin=3mm]{standalone}
\usetikzlibrary{arrows.meta, positioning}
\usepackage{circuitikz}
\begin{document}
\begin{tikzpicture}[box/.style={draw, thick, minimum size=10mm}]
\node [box] (A) {A};
\node [box, right=20mm of A] (B) {B};
\path (A) to [lowpass, name=lpf] (B);
\draw [-{Latex[length=2mm]}] (A.east) to (lpf.west);
\draw [-{Latex[length=2mm]}] (lpf.east) to (B.west);
\end{tikzpicture}
\end{document}
编辑:
如果您喜欢改变lowpass
边框厚度,那么您只需要重新定义双极子厚度:
\ctikzset{bipoles/thickness=1}
您可以在上图中重新绘制:
完全的姆韦是:
\documentclass[margin=3mm]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{arrows.meta, positioning}
\begin{document}
\begin{tikzpicture}[
box/.style = {draw, inner sep=2pt, minimum size=10mm},
LA/.style = {-{Latex[length=2mm]}},
node distance = 22mm
]
\ctikzset{bipoles/thickness=1}
%
\node [box] (A) {A};
\node [box, right=of A] (B) {B};
\path (A) to [lowpass, name=lpf] (B);
\draw [LA] (A) to (lpf.west);
\draw [LA] (lpf.east) to (B);
\end{tikzpicture}
\end{document}
答案2
也可以不使用路径对象,而是将其用作节点。我发现这在非纯电路或框图的混合图中很有用。大多数路径对象确实具有与节点对应的形状,通常可以通过附加shape
到名称来访问。
在下面的例子中lowpassshape
梅威瑟:
\documentclass[margin=3mm]{standalone}
\usepackage{circuitikz}
\usetikzlibrary{arrows.meta, positioning}
\begin{document}
\begin{tikzpicture}[
box/.style = {draw, inner sep=2pt, minimum size=10mm},
LA/.style = {-{Latex[length=2mm]}},
node distance = 22mm
]
\ctikzset{bipoles/thickness=1}
%
\node [box] (A) {A};
\node [lowpassshape, right=of A] (lpf) {};
\node [box, right=of lpf] (B) {B};
\draw [LA] (A) to (lpf.west);
\draw [LA] (lpf.east) to (B);
\end{tikzpicture}
\end{document}