答案1
对于 3D 图形,Asymptote 可能是 LaTeX 友好型图形编程语言中最好的。我是 Asymptote 的初学者,但 15 分钟就学会了Charles Staat 的教程产生了这个:
这是生成该结果的程序。
import three;
size3(100,100,100);
currentprojection = perspective(10,7,4);
surface i = shift(-1/2,-1/2,-1/2) * unitcube;
path3[] ii = shift(-1/2,-1/2,-1/2) * unitbox;
surface o = scale3(2) * i;
path3[] oo = scale3(2) * ii;
draw(i, red+opacity(0.5));
draw(o, grey+opacity(0.3));
draw(ii);
draw(oo);
我不知道这是否是好的风格,但我相信一定有更好的方法来绘制表面的边缘。本教程解释了如何添加标签。
编辑:确实有更好的方法来绘制表面的边缘;您所要做的就是将第二种颜色传递给绘图命令。
draw(i, red+opacity(0.5),black);
draw(o, white+opacity(0.3),black);
那么就不再需要这些unitbox
物体了。