我在 Asymptote 中发现了奇怪的颜色行为。当我绘制 3D 图形时,颜色似乎比应有的颜色更深。请考虑下面嵌入的图形。
有什么想法或指点吗?
图1的源代码:
import graph;
import settings;
outformat="pdf";
size(8cm, 4cm, IgnoreAspect);
real xmin=-3.5,xmax=3.5;
real ymin=0,ymax=5;
real f(real x) {return 0 + exp(-abs(x)^2);}
path Cf=graph(f, xmin,xmax, n=400);
path mypoly=buildcycle(pA--(1.64,0)--(0.5,0)--pB,graph(f,0.5,1.64));
draw(Cf);
xaxis(Label("$x$"), xmax=3.6, Arrow(3));
yaxis(Label("$p$"), ymax=1.1, Arrow(3));
filldraw(mypoly, red, black);
图2的源代码:
import graph3;
import settings;
outformat="pdf";
size(7.5cm,0);
real f(pair x) {return 1 + exp(-abs(x)^2);}
currentprojection=perspective(4,5,2);
limits((-3,-3,-0.2),(3,3,3.2));
xaxis3(Label("$x$",1),blue,arrow=Arrow3);
yaxis3(Label("$y$",1),blue,arrow=Arrow3);
zaxis3(Label("$z$",1),blue,arrow=Arrow3);
path3 p1=(-2.5,-2.5,0)--(2.5,-2.5,0)--(2.5,2.5,0)--(-2.5,2.5,0)--cycle;
path3 p2=scale3(2)*unitcircle3;
draw(p1);
draw(surface(reverse(p1)^^p2,planar=true),red);
draw(surface(f,(-2.5,-2.5),(2.5,2.5),nx=20,Spline),lightgray,meshpen=black+thick(),nolight);
答案1
这是由于光源位置(在 3D 中)造成的。您可以通过使用 asy 和 OpenGl 渲染来观察这一现象。也许您可以通过添加来更改当前光线
currentlight=light(0,0,2);
和
draw(surface(reverse(p1)^^p2,planar=true),red,currentlight);
奥格