将完全定义的图片绝对放置在路径图片内的任意一点

将完全定义的图片绝对放置在路径图片内的任意一点

以下示例生成一个具有单个端口的机架交换机。

机架交换机的前端由路径图定义。

我使用 \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}

相关内容