在渐近线中渲染图像的问题

在渐近线中渲染图像的问题

我想从渐近线包构建图像,但是当我输入

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));

相关内容