![自定义命令/绘图作为节点](https://linux22.com/image/478593/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%91%BD%E4%BB%A4%2F%E7%BB%98%E5%9B%BE%E4%BD%9C%E4%B8%BA%E8%8A%82%E7%82%B9.png)
我正在尝试制作一个个相邻的立方体,形成网格状图案。我认为最好的方法是使用节点,然后将我的绘图放在那里。我从这个帖子如何编写自定义命令来制作任意立方体(以我想要的格式)。我希望最终得到类似
\begin{tikzpicture}
\node[\tikzcube{3}{1}] (c0) {};
\node[\tikzcube{4}{1}, right=10cm] (c1) {};
\node[\tikzcube{2}{1}, below=10cm] (c2) {};
... so on ...
\tikzcube
执行绘图的自定义命令在哪里(如链接的帖子中所示)。
答案1
我只是从你的链接并将它们设为“pic”。语法与您所建议的非常相似。
\documentclass[tikz,border=3.14mm]{standalone}
\newcommand{\tikzcuboid}[3]{% width, height, depth, scale
\foreach \x in {0,...,#1}
{ \draw (\x ,0 ,#3 ) -- (\x ,#2 ,#3 );
\draw (\x ,#2 ,#3 ) -- (\x ,#2 ,0 );
}
\foreach \x in {0,...,#2}
{ \draw (#1 ,\x ,#3 ) -- (#1 ,\x ,0 );
\draw (0 ,\x ,#3 ) -- (#1 ,\x ,#3 );
}
\foreach \x in {0,...,#3}
{ \draw (#1 ,0 ,\x ) -- (#1 ,#2 ,\x );
\draw (0 ,#2 ,\x ) -- (#1 ,#2 ,\x );
}
}
\newcommand{\tikzcube}[1]{% length, scale
\tikzcuboid{#1}{#1}{#1}
}
\begin{document}
\begin{tikzpicture}[pics/cube/.style={code={\tikzcube{#1}}}]
\pic (c0) {cube=3} ;
\pic[right=10cm] (c1) {cube=4};
\pic[below=10cm] (c2) {cube=2};
\end{tikzpicture}
\end{document}