ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Hans Hagen <pragma@wxs.nl>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Cc: Philipp Gesang <pgesang@ix.urz.uni-heidelberg.de>
Subject: Re: metapost and lua
Date: Fri, 06 Aug 2010 13:34:20 +0200	[thread overview]
Message-ID: <4C5BF33C.6020206@wxs.nl> (raw)
In-Reply-To: <20100805223218.GA13680@aides>

On 6-8-2010 12:32, Philipp Gesang wrote:
> Hi all!
>
> [1]     Is there a Lua interface for metapost? I'm thinking of something
>          like cld is for TeX here. All I figured out so far is how to
>          generate mp code (as strings) in Lua and then having it
>          processed by mplib, but as the metafun manual is from 2002 and
>          with context you never know how far it is ahead of your dreams …
>
> [1a]    If not [1], then: will there ever be something like this?
>
> [2]     There's an example for “metapost.process()” in mlib-ctx.mkiv but
>          I can't get it to work. I simply copypasted it as follows:
>
> ···8<··········································································
>
> \starttext
> \startluacode
> mpgraphic = [[
>      for i=1 upto 1000 :
>          beginfig(0);
>              draw halfcircle scaled 1cm withcolor green ;
>              picture p ; p := "oeps" infont defaultfont scaled .75 rotated 45 ;
>              p := p shifted - (xpart center p,0) ;
>              draw p ; draw boundingbox p ;
>          endfig ;
>          beginfig(0);
>              draw halfcircle scaled 1cm dashed evenly withcolor green ;
>          endfig ;
>          beginfig(0);
>              pickup pencircle xscaled .5mm yscaled .25mm  rotated 45 ;
>              draw halfcircle scaled 1cm withcolor red ;
>          endfig ;
>          beginfig(0);
>              draw halfcircle scaled 1cm ;
>          endfig ;
>          beginfig(0);
>             pickup pencircle xscaled .5mm yscaled .25mm  rotated 45 ;
>              for k:=1 upto 10 :
>                  draw halfcircle scaled uniformdeviate(1cm) withcolor (red/(k/4)) ;
>              endfor ;
>          endfig ;
>      endfor ;
> ]]
> metapost.process(metapost.format("metafun"),mpgraphic)
> \stopluacode
>
> \stoptext

how about:

\starttext

\startluacode
context.startMPcode()
context("draw fullcircle scaled 10cm;")
context.stopMPcode()

context.resetMPdrawing()

context.startMPdrawing()
context("fill fullcircle scaled 10cm;")
context.stopMPdrawing()

for i=1,100,5 do
     context.startMPdrawing()
     context("draw fullcircle scaled " ..i .. "mm withcolor white;")
     context.stopMPdrawing()
end

context.MPdrawingdonetrue()

context.getMPdrawing()
\stopluacode

\stoptext


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
     tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com
                                              | 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://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

  parent reply	other threads:[~2010-08-06 11:34 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-05 22:32 Philipp Gesang
2010-08-05 22:55 ` Hans Hagen
2010-08-06 11:34 ` Hans Hagen [this message]
2010-08-06 11:44   ` Hans Hagen
2010-08-06 12:20     ` Philipp Gesang
2010-08-06 12:17   ` Philipp Gesang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4C5BF33C.6020206@wxs.nl \
    --to=pragma@wxs.nl \
    --cc=ntg-context@ntg.nl \
    --cc=pgesang@ix.urz.uni-heidelberg.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).