渐近线错误 3D 重叠

渐近线错误 3D 重叠

我刚刚安装了 Asymptote 来制作带有 LaTeX 注释的 3D 模型。

我的模型由几个 3D 对象组成,它们重叠得不太好,似乎它们是按照我的脚本中的相同顺序绘制的。

这是我的代码:

import graph3;
import solids;
import three;

currentlight=White;

render render=render(compression=0,merge=true);

//body
revolution sph=sphere((0,0,0.0),1.0);
draw(surface(sph),green+white+opacity(1.0), render);

//arms
revolution armY=cylinder(O,0.25,5.0,Y);
draw(surface(armY),green+white+opacity(1.0), render);
draw(surface(shift(0,-5,0)*armY),green+white+opacity(1.0), render);

revolution armX=cylinder(O,0.25,5.0,X);
draw(surface(armX),green+white+opacity(1.0), render);
draw(surface(shift(-5,0,0)*armX),green+white+opacity(1.0), render);

//motors
revolution motor=cylinder(O,0.25,0.6,Z);

draw(surface(shift(0,5,-0.25)*motor),green+white+opacity(0.05), render);
draw(surface(shift(5,0,-0.25)*motor),green+white+opacity(0.05), render);
draw(surface(shift(0,-5,-0.25)*motor),green+white+opacity(0.05), render);
draw(surface(shift(-5,0,-0.25)*motor),green+white+opacity(0.05), render);

这是我的输出 输出重叠错误的图像

我觉得有一个问题

render render=render(compression=0,merge=true);

我也尝试运行 Asymptote 页面中的示例来自 Asymptote 网站的 3D 示例以及该问题的答案代码StackExchange 上的 3D Asymptote 示例但我总是得到错误的重叠。

我在 Ubuntu 18 中安装了 Asymptote 版本 2.67 以及 Ghostscript 9.19。

您能看出我遗漏了什么吗?提前致谢。

答案1

对于立体 3D 渲染,请使用光栅输出。例如,使用命令

asy -f png -noprc -render=4  3d-overlap.asy

我们有

在此处输入图片描述

其中3d-overlap.asy包含问题中的代码并size添加了以下内容:

size(9cm);

相关内容