On 10/7/2018 7:14 PM, Alan Braslau wrote:
On Sun, 7 Oct 2018 17:25:35 +0200
"Mikael P. Sundqvist" <mic...@gmail.com> wrote:

ContourPlot[2 x^5 + x y + y^5 == 0, {x, 0, 2}, {y, -2, 1/2}]

Brut force:

\startTEXpage
\startMPcode {doublefun}
pen savedpen ; savedpen := currentpen ;
pickup pencircle scaled .01 ;
path p ;
p := for i=0 upto 1000 :
        for j=0 upto 1000 :
          hide(x := 2i/1000 ; y := 2.5j/1000 - 2 ;)
          if abs(2*(x**5)+x*y+y**5) < .002i/1000 : (x,y) .. fi
        endfor
      endfor cycle ;
draw subpath (0,length p - 1) of p ;
setbounds currentpicture to (0,-2)--(2,-2)--(2,.5)--(0,.5)--cycle ;
currentpicture := currentpicture xsized 5cm ;
pickup savedpen ;

picture pic ; pic := currentpicture ;
drawarrow llcorner pic--lrcorner pic ;
drawarrow llcorner pic--ulcorner pic ;
label.rt ("$x$", lrcorner pic) ;
label.top("$y$", ulcorner pic) ;
for x=0 step .5 until 2 :
     label.bot(decimal x,(x/2)[llcorner pic,lrcorner pic]) ;
endfor
for y=0 step .5 until 2.5 :
     label.lft(decimal (y-2),(y/2.5)[llcorner pic,ulcorner pic]) ;
endfor
\stopMPcode
\stopTEXpage
as this takes some time here's a cheat:

\starttext

\startbuffer[demo]
% when an environment is used, load it here
\startMPcode {doublefun}
    pen savedpen ; savedpen := currentpen ;
    pickup pencircle scaled .01 ;
    numeric stp ; stp := 1 ;
    path p ;
    p := for i=0 step stp until 1000 :
        for j=0 step stp until 1000 :
            hide(x := 2i/1000 ; y := 2.5j/1000 - 2 ;)
            if abs(2*(x**5)+x*y+y**5) < .002i/1000 : (x,y) .. fi
        endfor
    endfor cycle ;
    draw subpath (0,length p - 1) of p ;
    setbounds currentpicture to (0,-2)--(2,-2)--(2,.5)--(0,.5)--cycle ;
    currentpicture := currentpicture xsized 5cm ;
    pickup savedpen ;
    picture pic ; pic := currentpicture ;
    drawarrow llcorner pic--lrcorner pic ;
    drawarrow llcorner pic--ulcorner pic ;
    label.rt ("$x$", lrcorner pic) ;
    label.top("$y$", ulcorner pic) ;
    for x=0 step .5 until 2 :
        label.bot(decimal x,(x/2)[llcorner pic,lrcorner pic]) ;
    endfor ;
    for y=0 step .5 until 2.5 :
        label.lft(decimal (y-2),(y/2.5)[llcorner pic,ulcorner pic]) ;
    endfor ;
\stopMPcode
\stopbuffer

\startTEXpage
    \typesetbuffer[demo]
\stopTEXpage

\stoptext

a next run the already prepared buffer will be taken unles it has been changed.

Hans

-----------------------------------------------------------------
                                          Hans Hagen | PRAGMA ADE
              Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
       tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to