有什么简单的方法可以重现该图表?
我可以使用 tikzpicture 进行暴力破解
\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
\draw (315.8,328.9) -- (268.85,410.22) -- (174.95,410.22) -- (128,328.9) -- (174.95,247.58) -- (268.85,247.58) -- cycle ;
\draw (315.8,328.9) -- (358,272) ;
\draw (318,212) -- (358,272) ;
\draw (318,212) -- (268.85,247.58) ;
\draw (428,252) -- (358,272) ;
\draw (428,252) -- (420,300) ;
\draw (420,300) -- (350,370) ;
\draw (408,152) -- (428,252) ;
\draw (338,102) -- (408,152) ;
\draw (278,132) -- (318,212) ;
\draw (171.4,132) -- (278,132) ;
\draw (78,232) -- (128,328.9) ;
\draw (78,232) -- (171.4,132) ;
\draw (138,172) -- (174.95,247.58) ;
\draw (338,102) -- (278,132) ;
\draw (171.4,132) -- (240,100) ;
\draw (240,100) -- (338,102) ;
\draw (268.85,410.22) -- (350,370) ;
\end{tikzpicture}
我想知道是否有更优雅的方法来做到这一点。
答案1
有多种方法来绘制顺序 4亚四面体,它实际上是一个截角八面体。一组标准坐标是 {(0,±1,±2), (0,±2,±1), (±1,0,±2), (±2,0,±1), (±1,±2,0), (±2,±1,0)}。因此,我们设置这些坐标并绘制:
以下是帮助您入门的代码。您可以添加标签、颜色、阴影、隐藏边缘、更改视角等。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[z={(0,0,.5)}, line join=round]
\foreach [var=\x, var=\y, var=\z, count=\n] in {
2/1/0,2/0/1,2/-1/0,2/0/-1,
1/0/2,0/1/2,-1/0/2,0/-1/2,
1/2/0,0/2/1,-1/2/0,0/2/-1,
-2/1/0,-2/0/1,-2/-1/0,-2/0/-1,
1/0/-2,0/1/-2,-1/0/-2,0/-1/-2,
1/-2/0,0/-2/1,-1/-2/0,0/-2/-1
}{\coordinate (n\n) at (\x,\y,\z);}
\draw (n1)--(n2)--(n3)--(n4)--cycle;
\draw (n5)--(n6)--(n7)--(n8)--cycle;
\draw (n9)--(n10)--(n11)--(n12)--cycle;
\draw (n21)--(n22)--(n23);
\draw (n13)--(n14)--(n15);
\draw (n6)--(n10);
\draw (n2)--(n5);
\draw (n8)--(n22);
\draw (n15)--(n23);
\draw (n7)--(n14);
\draw (n11)--(n13);
\draw (n1)--(n9);
\draw (n3)--(n21);
\end{tikzpicture}
\end{document}
也可以看看这个问题以及有关绘制截头八面体的更多方法的答案。
答案2
这完全取决于个人意见。如果图表的形状与你制作的完全一样,那么你可能已经找到了一个很好的解决方案。
如果我想减少代码量,我会这样处理问题:在 foreach 循环中使用坐标进行绘图。当然,输入所有坐标非常麻烦。
\documentclass[border=1cm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[x=0.75pt,y=0.75pt,yscale=-1,xscale=1]
\draw[line width=0.5mm, black ] (315.8,328.9)
\foreach \x/\y in {315.8/328.9,268.85/410.22,174.95/410.22,128/328.9,174.95/247.58,268.85/247.58,315.8/328.9,358/272,318/212,268.85/247.58}
{-- (\x,\y)};
\end{tikzpicture}
\end{document}