![Asymptote 中的 Material 与 Pen 对比](https://linux22.com/image/420354/Asymptote%20%E4%B8%AD%E7%9A%84%20Material%20%E4%B8%8E%20Pen%20%E5%AF%B9%E6%AF%94.png)
我需要在 Asymptote 中绘制大量图像,既有彩色版本,也有灰度版本。假设我有一个表面s
。我发现我喜欢s
用
draw(s,rgb(.6,.6,1)+opacity(.7),meshpen=rgb(0,0,.7));
我喜欢灰度
draw(s,emissive(white+opacity(.6)),meshpen=rgb(0,0,0));
。
我想定义一支笔mypen
,根据我是处于彩色模式还是灰度模式(通过布尔变量设置),采用两个值之一。所以我的文件只有一个命令
draw(s,mypen,meshpen=p)
其中mypen
定义为
pen mypen=rgb(.6,.6,1)+opacity(.7);
或者
pen mypen=emissive(white+opacity(.6));
(且p
定义类似)。
我的问题:虽然rgb(.6,.6,1)+opacity(.7)
是一支笔,但结果emissive(white+opacity(.6))
却是一支材料我无法使用语法定义它pen mypen=...
。而且似乎我无法定义类似的东西material mymaterial=...
。
我如何将一个变量定义为笔或材料?