在漸近線渲染影像的問題

在漸近線渲染影像的問題

我想從漸近線包建立圖像,但是當我輸入

asy File-1.asy

它給了我這個

pic.addBox(position,position,min(f),max(f));

我該如何解決這個問題?
我的asy版本是

ENABLED OPTIONS:
WebGL    3D HTML rendering
OpenGL   3D OpenGL rendering
CURL     URL support

DISABLED OPTIONS:
DISABLED OPTIONS:
V3D      3D vector graphics output
SSBO     GLSL shader storage buffer objects
GSL      GNU Scientific Library (special functions)
FFTW3    Fast Fourier transforms
Eigen    Eigenvalue library
XDR      External Data Representation (portable binary file format for V3D)
LSP      Language Server Protocol
Readline Interactive history and editing
Editline interactive editing (if Readline is unavailable)
Sigsegv  Distinguish stack overflows from segmentation faults
GC       Boehm garbage collector
threads  Render OpenGL in separate thread

而我的 File-1.asy 看起來像這樣

if(!settings.multipleView) settings.batchView=false;
defaultfilename="File-1";
if(settings.render < 0) settings.render=4;
settings.outformat="";
settings.inlineimage=true;
settings.embed=true;
settings.toolbar=false;
viewportmargin=(2,2);

defaultpen(fontsize(10pt));
size(8cm); // set a reasonable default
usepackage("amsmath");
usepackage("amssymb");
settings.tex="pdflatex";
settings.outformat="pdf";
// Replacement for olympiad+cse5 which is not standard
import geometry;
// recalibrate fill and filldraw for conics
void filldraw(picture pic = currentpicture, conic g, pen fillpen=defaultpen, pen drawpen=defaultpen)
{ filldraw(pic, (path) g, fillpen, drawpen); }
void fill(picture pic = currentpicture, conic g, pen p=defaultpen)
{ filldraw(pic, (path) g, p); }
// some geometry
pair foot(pair P, pair A, pair B) { return foot(triangle(A,B,P).VC); }
pair orthocenter(pair A, pair B, pair C) { return orthocentercenter(A,B,C); }
pair centroid(pair A, pair B, pair C) { return (A+B+C)/3; }
// cse5 abbreviations
path CP(pair P, pair A) { return circle(P, abs(A-P)); }
path CR(pair P, real r) { return circle(P, r); }
pair IP(path p, path q) { return intersectionpoints(p,q)[0]; }
pair OP(path p, path q) { return intersectionpoints(p,q)[1]; }
path Line(pair A, pair B, real a=0.6, real b=a) { return (a*(A-B)+A)--(b*(B-A)+B); }
// cse5 more useful functions
picture CC() {
picture p=rotate(0)*currentpicture;
currentpicture.erase();
return p;
}
pair MP(Label s, pair A, pair B = plain.S, pen p = defaultpen) {
Label L = s;
L.s = "$"+s.s+"$";
label(L, A, B, p);
return A;
}
pair Drawing(Label s = "", pair A, pair B = plain.S, pen p = defaultpen) {
dot(MP(s, A, B, p), p);
return A;
}
path Drawing(path g, pen p = defaultpen, arrowbar ar = None) {
draw(g, p, ar);
return g;
}

size(12cm);

void dc(pair x, pen p) {
pair y = intersectionpoints(circle((0,0),8),(0,0)--1000*x)[0];
filldraw(circle(x, abs(x-y)), opacity(0.1)+p, p);
filldraw(circle(conj(x), abs(x-y)), opacity(0.1)+p, p);
}

pair O1 = (0,0);
pair O2 = (5,0);
pair P1 = intersectionpoints(circle(O1,5),circle(O2,3+sqrt(3)))[0];
pair P2 = intersectionpoints(circle(O1,3),circle(O2,5+sqrt(3)))[0];
pair P3 = intersectionpoints(circle(O1,5),circle(O2,3-sqrt(3)))[0];
pair P4 = intersectionpoints(circle(O1,3),circle(O2,5-sqrt(3)))[0];

filldraw(circle(O1,8), opacity(0.1)+grey, black+1.8);

dc(P1,blue);
dc(P2,red);
dc(P3,darkgreen);
dc(P4,brown);

filldraw(circle(O1,2), opacity(0.4)+yellow, black+1.8);
filldraw(circle(O2,sqrt(3)), opacity(0.4)+yellow, black+1.8);

dot("$(0,0)$", (0,0), dir(-90));
dot("$(5,0)$", (5,0), dir(-90));

相關內容