我正在尝试制作类似这张图片的映射
I tried
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\begin{document}
\tdplotsetmaincoords{110}{70}
\begin{tikzpicture}[tdplot_main_coords ,declare function={a=6;b=2;h=1;
}]
\path
(0,0,0) coordinate (A)
(a,0,0) coordinate (B)
(a,b,0) coordinate (C)
(0,b,0) coordinate (D)
(0,0,h) coordinate (E)
(a,0,h) coordinate (F)
(a,b,h) coordinate (G)
(0,b,h) coordinate (H)
;
\draw (E)-- (F) -- (G) -- (H) --cycle (A) -- (E)--(H) -- (D) -- (C) -- (G) -- (H) (A) -- (D);
\end{tikzpicture}
\end{document}
如何创建如上图这样的映射?
答案1
我不确定这是否回答了问题,但屏幕截图似乎是在等距视图中,这是在perspective
库中预定义的。
\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{perspective}
\begin{document}
\begin{tikzpicture}[isometric view ,declare function={a=6;b=4;h=2;
}]
\path
foreach \X in {-1,...,7}
{foreach \Y in {-1,...,5}
{foreach \Z in {-1,...,3}
{(\X,\Y,\Z)node[circle,inner sep=1pt,fill]{}}}}
(0,0,0) coordinate (A)
(a,0,0) coordinate (B)
(a,b,0) coordinate (C)
(0,b,0) coordinate (D)
(0,0,h) coordinate (E)
(a,0,h) coordinate (F)
(a,b,h) coordinate (G)
(0,b,h) coordinate (H)
;
\draw (E)-- (F) -- (G) -- (H) --cycle
(E) -- (A) -- (D) -- (H)
(A) -- (B) -- (F)
;
\end{tikzpicture}
\end{document}
答案2
\draw[pattern= dots] (-1,0) rectangle +(12,2);
之前添加 \end{tikzpicture}
会产生点状背景,但它们不像图片中那样粗。您可以更改这一点。
完整代码
\documentclass[tikz,border=3.14mm]{standalone}
\usepackage{tikz-3dplot}
\usetikzlibrary{patterns}
\begin{document}
\tdplotsetmaincoords{110}{70}
\begin{tikzpicture}[tdplot_main_coords ,declare function={a=6;b=2;h=1;
}]
\path
(0,0,0) coordinate (A)
(a,0,0) coordinate (B)
(a,b,0) coordinate (C)
(0,b,0) coordinate (D)
(0,0,h) coordinate (E)
(a,0,h) coordinate (F)
(a,b,h) coordinate (G)
(0,b,h) coordinate (H)
;
\draw (E)-- (F) -- (G) -- (H) --cycle (A) -- (E)--(H) -- (D) -- (C) -- (G) -- (H) (A) -- (D);
\draw[pattern= dots] (-1,0) rectangle +(12,2);
\end{tikzpicture}
\end{document}
输出