Kompilierungsfehler: Isolierter Ausdruck

Kompilierungsfehler: Isolierter Ausdruck

Ich verstehe den Fehler nicht, der durch die Kompilierung dieses Codes entsteht, der nicht funktioniert (basierend auf einer Idee von Franck PastorFläche zwischen zwei Kurven

beginfig(1);

interim linejoin := mitered;
interim ahangle := 30;

numeric u, pi, a, b;

pi = 3.141592653589793;
u = 1.5cm;

vardef graph_of_function (suffix f) (expr xmin, xmax, xsep) =
    for x = xmin step xsep until xmax: (x, f(x)) .. endfor (xmax, f(xmax))
enddef ;

vardef vline (suffix f, g) (expr x) = (x, min(f(x), g(x))) -- (x, max(f(x),g(x))) 
enddef;


vardef area_between_functions (suffix f, g)(expr a, b, xsep) =
      buildcycle(graph_of_function(f, a, b, xsep), vline(f, g, b), 
      reverse graph_of_function(g, a, b, xsep), reverse vline(f, g, a))
enddef;


xmin :=-pi/2; xmax := 3*pi/2; 
ymin :=-1.5; ymax  := 5;

vardef f(expr x)= exp(-x)*(-cos(x)+sin(x)+1) enddef;
vardef g(expr x)=-exp(-x)*cos(x) enddef;

path C_f, C_g;

C_f = graph_of_function(f,xmin,xmax,0.01);
C_g = graph_of_function(g,xmin,xmax,0.01);

a = xpart(C_f intersectionpoint C_g); 
b = xpart(reverse C_f intersectionpoint reverse C_g);

fill (area_between_functions(f, g, a, b, 0.1)) scaled u withcolor 0.4[white, blue];
draw C_f scaled u withcolor blue;
draw C_g scaled u withcolor blue;
  
endfig;

Hier ist die Konsolenausgabe

MPtoPDF 1.4.1 : running 'mpost --mem=mpost  logo.mp'
This is MetaPost, version 2.10 (TeX Live 2024) (kpathsea version 6.4.0)
(/home/fabrice/texlive/2024/texmf-dist/metapost/base/mpost.mp
(/home/fabrice/texlive/2024/texmf-dist/metapost/base/plain.mp
Preloading the plain mem file, version 1.005) ) (./logo.mp
>> exp
! Isolated expression.
<to be read again>
                   (
f->begingroup.exp(
                  -(EXPR2))*(-cos((EXPR2))+sin((EXPR2))+1)endgroup
<for(-1.5708)> ((EXPR0),f((EXPR0))
                                  ).. ENDFOR
graph_of_function->...R4):(x,(SUFFIX2)(x))..endfor
                                                  ((EXPR4),(SUFFIX2)((EXPR4)...
l.33 C_f = graph_of_function(f,xmin,xmax,0.01)
                                              ;
[...]
Transcript written on logo.log.

MPtoPDF 1.4.1 : error while processing mp file

Antwort1

Bitte verlinken Sie auf die von Ihnen verwendeten Codequellen.Ein Name ist gut, aber es wäre viel einfacher gewesen, dies zu beantworten, wenn Sie einen Link eingefügt hätten. Ich könnte Ihnen jetzt auch eine bessere Erklärung geben, weil ich speziell auf den Kontext hinweisen könnte, den Sie vermissen.

Wenn diese Informationen nicht vorhanden sind, kompilieren Sie einfach mit

mpost --mem=metafun --numbersystem=double <filename>.mp

Ich würde ein Bild posten, aber das neueste Okular-on-X erzeugt eine Ausgabe, die die Leser dauerhaft von MetaPost abschrecken würde, und das wäre höchst unfair.

ich benutzteFranck Pastors Antwortaber ich habe keine Ahnung, ob der OP das verwendet hat. Ich nehme an, metafuner erledigt hier die Arbeit. doubleverdoppelt nur die Präzision.

Bildbeschreibung hier eingeben

verwandte Informationen