是否有任何内置形状的 tikz 库,如天线(简单的 Y 形)、无线信道(本质上是云)、过滤器等?特别是,我希望绘制类似的图表:http://en.m.wikipedia.org/wiki/Mimo(第一张图)。我猜大部分方块都可以用矩形来渲染,但如果能有一些内置形状就更好了。
答案1
您只需用额外的代码注释矩形节点即可。这里我使用了需要 pgf 3.0.0 的“pics”。命名/参数化无疑可以改进。
\documentclass[border=0.125cm]{standalone}
\usepackage{tikz}
\begin{document}
\tikzset{%
wireless/.pic={
\draw [->] (0,0) -| (.5,#1);
\foreach \r in {.1,.2,.3}
\draw (.6,#1) ++ (60:\r) arc (60:-60:\r);
},
vdots/.pic={
\foreach \i in {-.1,0,.1}
\fill (.25,\i) circle [radius=.75pt];
},
block/.style={
shape=rectangle,
minimum width=2cm,
minimum height=1cm,
draw
},
Tx/.style 2 args={
block,
node contents=Tx,
append after command={
\pgfextra{\pgfnodealias{@}{\tikzlastnode}}
(@.north #1) [yshift=-.125cm] pic [#2] {wireless=.5}
(@.#1) pic [#2] {vdots}
(@.south #1) [yshift= .125cm] pic [#2] {wireless=.5}
}
},
MIMO Tx east/.style={Tx={east}{xscale=1}},
MIMO Tx west/.style={Tx={west}{xscale=-1}},
}
\begin{tikzpicture}
\node at (0,0) [MIMO Tx west];
\node at (0,2) [MIMO Tx east];
\end{tikzpicture}
\end{document}