以下示例生成一个具有单个端口的机架交换机。
机架交换机的前端由路径图定义。
我使用 \node 将端口添加到路径图片,并通过坐标放置节点。不幸的是,端口的坐标被忽略了。相反,端口被放置在路径图片的中心。
是否有一种通用的方法可以通过坐标将完全定义的图片(例如端口)绝对放置在路径图片内的任何一点?
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{calc, shadings, shadows, shapes.arrows}
\usetikzlibrary{positioning}
\tikzset{
port/.code={% style, size, label
\draw[port/rect] (0,0) rectangle (\pgfkeysvalueof{/tikz/port/tr});
\draw[fill=black] (.1cm,0cm) rectangle (.9cm,.5cm);
\draw[fill=black] (.2cm,.5cm) rectangle (.8cm,.7cm);
\draw[fill=black] (.4cm,.7cm) rectangle (.6cm,.8cm);
},
port/.cd,
rect/.style={thin, fill=gray!20},
tr/.initial={1cm,1.5cm},
label/.initial={},
/tikz/.cd,
rack switch/.style={
name=#1,
fill=white, draw,
minimum width=20cm,
minimum height=4cm,
path picture={
anchor=center;
\node(port1)[port] at (-2,2){};
}
}
}
\begin{document}
\begin{tikzpicture}
\node(Switch1) at (0,0) [rack switch=switch1]{};
\end{tikzpicture}
\end{document}