在立方网格内绘制子立方网格(具有不同的灰度)

在立方网格内绘制子立方网格(具有不同的灰度)

这是相关但非常简单的后续内容先前的问题,受到@marmot 评论的启发“或者您想对不同的平面使用不同的灰色吗?”

这是我所拥有的

在此处输入图片描述

这是一个 8 x 8 x 8 的立方体。

假设我想要一个 3 x 4 x 5 的格子,其中较暗的格子位于这个 8 x 8 x 8 立方体的新原点 (2,2,2)。我该怎么做?[看起来很简单 - 我只需要重新绘制另一个 3 x 4 x 5 的格子,位于新原点 (2,2,2)。]

\begin{figure}[h!]
\centering
\begin{tikzpicture}[tdplot_main_coords]
\begin{scope}[line width=0.01pt,black!20,xshift=5cm,scale=1.5]
 \foreach \X in {0,1,...,8}
 {\foreach \Y in {0,1,...,8}
 {\draw (\X/2,\Y/2,0) -- (\X/2,\Y/2,8/2);
 \draw (\X/2,0,\Y/2) -- (\X/2,8/2,\Y/2);
 \draw (0,\X/2,\Y/2) -- (8/2,\X/2,\Y/2);}}
 \end{scope} 
\end{tikzpicture} 
\label{fig:lattice-2}
\caption{}
\end{figure}

答案1

已编辑marmot 的回答得到这个:

在此处输入图片描述

这是你想要的吗?

\documentclass[tikz,border=3.14159mm]{standalone}
\usepackage{tikz-3dplot}
\tdplotsetmaincoords{70}{110}
\begin{document}
\begin{tikzpicture}[tdplot_main_coords]
\begin{scope}[black!20]
 \foreach \X in {0,...,8}
 {\foreach \Y in {0,...,8}
 {\draw (\X,\Y,0) -- ++(0,0,8);
 \draw (\X,0,\Y) -- ++(0,8,0);
 \draw (0,\X,\Y) -- ++(8,0,0);}}
\end{scope}

\begin{scope}[black]
 \foreach \X in {2,...,5}
 {\foreach \Y in {2,...,6}
 {\draw (\X,\Y,2) -- ++(0,0,5);}}

 \foreach \X in {2,...,5}
 {\foreach \Z in {2,...,7}
 {\draw (\X,2,\Z) -- ++(0,4,0);}}

 \foreach \Y in {2,...,6}
 {\foreach \Z in {2,...,7}
 {\draw (2,\Y,\Z) -- ++(3,0,0);}}
\end{scope}
\end{tikzpicture} 
\end{document}

相关内容