我只是按照 Charles Staats III 的教程
在第55页中,代码:
settings.outformat = "pdf";
settings.prc = false;
settings.render = 0;
import three;
size(5cm,0);
path3 myarc = rotate(18,Z) * Arc(c=O, normal=X, v1=-Z, v2=Z, n=10);
surface backHemisphere =
surface(myarc, angle1=0, angle2=180, c=O, axis=Z, n=10);
surface frontHemisphere =
surface(myarc, angle1=180, angle2=360, c=O, axis=Z, n=10);
draw(backHemisphere,
surfacepen=material(white+opacity(0.8),
ambientpen=white),
meshpen=gray(0.4));
draw(O--X, blue+linewidth(1pt));
draw(frontHemisphere,
surfacepen=material(white+opacity(0.8), ambientpen=white),
meshpen=gray(0.4));
无法正常运行,错误为:
fig01.asy: 6.17: no matching variable 'Arc'
如果我编辑了
path3 myarc = rotate(18,Z) * Arc(c=O, normal=X, v1=-Z, v2=Z, n=10);
到
path3 myarc = rotate(18,Z) * arc(c=O, normal=X, v1=-Z, v2=Z, n=10);
它会给出消息:
fig01.asy: 6.33: no matching function 'arc(triple c, triple normal, triple v1, triple v2, int n)'
有谁知道哪里出了问题吗?
答案1
好的,查看文档后,我知道为什么会发生这种情况。要使用该函数Arc
,path3
需要额外的包,
import graph3;
此外,2D 情况下的函数需要Arc
包Circle
graph
import graph;
他们可以解决这个问题。