自定义命令/绘图作为节点

自定义命令/绘图作为节点

我正在尝试制作一个个相邻的立方体,形成网格状图案。我认为最好的方法是使用节点,然后将我的绘图放在那里。我从这个帖子如何编写自定义命令来制作任意立方体(以我想要的格式)。我希望最终得到类似

\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}

在此处输入图片描述

相关内容