如何使用教程中的渐近线绘制球体

如何使用教程中的渐近线绘制球体

我只是按照 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

好的,查看文档后,我知道为什么会发生这种情况。要使用该函数Arcpath3需要额外的包,

import graph3;

此外,2D 情况下的函数需要ArcCirclegraph

import graph;

他们可以解决这个问题。

相关内容