Hi Hans,

One MetaPost feature that I was looking forward to is the ability to create a fill between two shapes.
Something like a difference function of two path's.

For logos I use the workaround with creating a path alongside the excluded areas but it is always cumbersome.

I have briefly mentioned it back here: https://mailman.ntg.nl/pipermail/ntg-context/2011/056910.html

Just for illustration purposes, if I wanted to fill the area in between two circles:
path p ;
p := fullcircle scaled 1cm ;
path q ;
q := fullcircle scaled .5cm ;
Instead of creating a new path along both circles with:
r := p -- reverse q -- cycle ;
It would be nice to have something like:
fill p excluding q ;
or something like that.

I mainly have use-cases for differences in shapes, but filling the intersection of two shapes would be the same idea.

Thanks,
Adam


On Wed, Aug 14, 2019 at 10:57 AM Hans Hagen <j.hagen@xs4all.nl> wrote:
Hi,

In the process of providing an additional (more abstract) interface to
some of the old and also new MetaFun code we wonder what kind of
features users would like to see.

http://www.pragma-ade.com/general/magazines/mag-1104-mkiv.pdf

As a teaser I uploaded a MyWay document that shows some of what is
coming. All is experimental but it shows the direction. We're talking
ConTeXt LMTX here. For instance,

     draw lmt_outline [
         content       = "hello",
         kind          = "reverse",
         fillcolor     = "darkred",
         drawcolor     = "darkblue",
         rulethickness = 1/2,
     ] ysized h shifted (3.75h,-1.25h) ;

Wraps all the outline drawing in one macro with a set of options (there
will be xml interface definitions for that). Or take:

     draw lmt_followtext [
         content = "How well does it work {\bf 1}! ",
         path    = (fullcircle scaled 4cm),
         trace   = true,
         spread  = true,
     ] ysized 5cm ;

which is an easier interface to text along a curve. Arrows can be drawn
with

     draw lmt_arrow [
         kind        = "draw",
         location    = "middle",
         alternative = "curved",
         path        = fullcircle
             scaled  3cm
             shifted (3.5cm,0cm),
     ] withcolor "darkblue" ;

but of course the low level interface with its many variables for
tweaking stays around. Other examples are shown in the mentioned document.

So the question is: What do you miss in metapost support? Of course it
should fit within the concept, so 'artistic freehand drawings' is not
something that is likely to get interfaced. We are particularly
interested in educational applications, if only because ConTeXt started
out that way.

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
___________________________________________________________________________________