我正在尝试创建一个类似于以下的图形这里还有一个问题:
但是当我尝试渲染一个简单平面的彩色透明表面时,有些东西看起来不对劲。使用以下代码
import bsp;
size(15cm,0);
settings.outformat = "pdf";
settings.render = 5;
currentprojection=orthographic(5,4,3);
path3 pl = plane((0,-6,0),(-6,0,0),(0,3,0));
draw(pl);
draw(surface(pl), red+opacity(0.5), nolight);
我得到了输出
尽管平面表面应该完全呈现为红色,不透明度为 0.5。当我删除该opacity(0.5)
选项时,如下所示
draw(surface(pl), red, nolight);
我得到了期望的输出:
但即使我直接从回答另一个 stackexchange 问题,所述问题仍然存在:
我已经尝试在文档以及此 stackexchange 上的其他帖子,但到目前为止尚未找到任何答案。我做错了什么?
.asy
编辑:我正在使用asymptote CLI在文件中渲染 asymptote 代码,不是在 latex 文档环境中asy
。我还想保持这种方式,即使用 CLI 单独渲染我的渐近线图形,然后将它们插入到我的 latex 文档中。
asy
编辑2:当我在乳胶文件的环境中编译渐近线代码时pdflatex
,生成的plane.asy
文件是:
if(!settings.multipleView) settings.batchView=false;
settings.tex="pdflatex";
defaultfilename="asymptote-1";
if(settings.render < 0) settings.render=4;
settings.outformat="";
settings.inlineimage=true;
settings.embed=true;
settings.toolbar=false;
viewportmargin=(2,2);
import bsp;
size(15cm,0);
settings.outformat = "pdf";
settings.render = 5;
currentprojection=orthographic(5,4,3);
path3 pl = plane((0,-6,0),(-6,0,0),(0,3,0));
draw(pl);
draw(surface(pl), red+opacity(0.5), nolight);
输出结果
为 因此,平面仍未正确渲染。之前,我编译了一个.tex
包含我的渐近线代码的测试文件背页(也使用pdflatex
)并且平面正确呈现到生成的 pdf 中。我应该在第一次编辑时澄清这一点。总之,我的问题一定是本地问题。我想在 MacBook Pro (M1) 上编译所有内容,但不记得更改过 asymptote CLI 的任何默认设置。
编辑 3:现在我尝试在 Mac 上安装不同版本的 asymptote。我使用的是 2.85 版(texlive/mactex 预装的)。今天,我使用 homebrew 单独安装了 2.89 版,并再次编译了我的代码 - 遗憾的是,问题仍然存在。此外,自从我发布了这个问题后,我重新安装了 MacTex(以及 texlive),但我仍然遇到同样的问题。当然,我也尝试了旧的“重新启动 PC”技巧。
编辑 4:我稍微编辑了标题,因为我发现这在我的计算机上是一个更普遍的问题,当我尝试编译来自文档也就是说,当我从文档第 138 页编译表面时,我发现了类似的(我认为相关的)问题:编译
import bsp;
settings.outformat = "pdf";
settings.render = 5;
size(15cm,0);
draw(surface((0,0)--E+2N--2E--E+N..0.2E..cycle), red);
生成
预期结果。但+opacity(0.5)
添加
draw(surface((0,0)--E+2N--2E--E+N..0.2E..cycle), red+opacity(0.5));
生产
答案1
我注意到这个问题可能更普遍,经过进一步挖掘,我发现另一个问题似乎有同样的问题。因此,@Nat Kuhn 打开了一个github 上的问题到目前为止,基于对 github 问题的回复,如 @Nat Kuhn 所述回答,MacOS 缺少某些软件支持,无法正确渲染透明表面。问题最终解决后,我会接受这个答案。