ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: h h extern <pragma@wxs.nl>
Subject: Re: shading in meta[post/play] & PDF
Date: Fri, 21 Jan 2005 21:55:32 +0100	[thread overview]
Message-ID: <41F16C44.4020106@wxs.nl> (raw)
In-Reply-To: <41F04319.2070402@guest.arnes.si>

Mojca Miklavec wrote:

> Problem description:
> I have a computer program, which carries the data about the grid points 
> on a sphere (possibly with different colors defined in these points) and 
> how the points are connected with each other to form a grid. I would 
> take these triangles (or quadrilaterals), draw them transformed on the 
> plane (with curves, not with straight lines) and fill them with the 
> appropriate shading pattern (colors defined in corners of the triangles 
> (darker according to normal vector) simply interpolated between the 
> three points). Yet another possibility would probably be to use 
> function-based shading and define a function which knows how the points 
> have to be shaded on the sphere, but the latter seems more complicated 
> and less universal.
> 
> Problem reduction:
> Fill a mp closed path with any more complex shading.
> 
> So I would probably need Type 6 or 7 shading (Type 4 would be OK as the 
> picture can be clipped within metapost, so that the resulting sphere 
> borders are not composed of straight lines; the articles on 
> http://www.math.ubc.ca/people/faculty/cass/graphics/text/www/ which 
> inspired me to do something so crazy actually use Type 4 shading). Type 
> one is probably the most general one, so it should be OK too, just 
> complicated to do.
> 
> However: I'm not sure if, say, a (sampled) function to be passed to PDF 
> can be specified in metapost elegantly.

i searched my machine extensively but it seems that i lost some code that could 
be used as starting point for that;

> Page 746 of PDF Reference, version 1.6 also defines an interesting new 
> feature: 3D objects (3D Artwork as they call it), but I haven't found 
> anything else about that.

there is a section about shading, the function numbers differ;

> In dvipdfm there's an example of using:
> \special{pdf: bt rotate 90 xscale 2.0 }
> 
> These lines are to be used in TeX. MetaPost also knows a "special" 
> command, I just don't know how to use it. (This is probably the 
> "communication channel" to PDF when trying to implement some more exotic 
> shadings.)

take a look at supp-mpe.tex, all we need is some variant on

\defineMPspecial{31}
   {\startMPshading{16}% type 3
    \setMPshadingcolors{4}{5}{6}{10}{11}{12}%
    \immediate\pdfobj
      {<</FunctionType 2
         /Domain [\gMPs1 \gMPs2]
         /C0 [\MPshadeA]
         /C1 [\MPshadeB]
         /N \gMPs3>>}%
    \immediate\pdfobj
      {<</ShadingType 3
         /ColorSpace /\MPshadeC\space
         /Function \the\pdflastobj\space 0 R
         /Coords [\gMPs7 \gMPs8 \gMPs9 \gMPs{13} \gMPs{14} \gMPs{15}]
         /Extend [true true]>>}%
    \stopMPshading}

(plus some more depending on what parameters need to be passed)

> I glimpsed the mp-spec.mp file, but I didn't yet understand how the 
> parameters are passed to PDF.
> 
>> [more a context mailing list issue than a metapost list issue] 
> 
> So I left the metapost group out. Actually, 90% on the people here 
> probably think I posted that to the wrong group anyway (in the sense of 
> "Are you sure you didn't want to post that question to the 3D studio max 
> mailing list?" :) The example above is probably not the most descriptive 
> one, but having the possibility to add some more advanced shading 
> patterns would be great.

if you can locate the right stuff in the pdf ref manual we can see what can be 
done (off list); i can add more 'special' handlers to the mp to pdf converted

Hans


-----------------------------------------------------------------
                                           Hans Hagen | PRAGMA ADE
               Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
      tel: 038 477 53 69 | fax: 038 477 53 74 | www.pragma-ade.com
                                              | www.pragma-pod.nl
-----------------------------------------------------------------

  reply	other threads:[~2005-01-21 20:55 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-01-15  5:16 Mojca Miklavec
2005-01-15 21:04 ` [metapost] " Laurence Finston
2005-01-19 10:00   ` Mojca Miklavec
2005-01-19 10:59     ` Laurence Finston
2005-01-19 11:48     ` Hans Hagen
2005-01-20 23:47       ` Mojca Miklavec
2005-01-21 20:55         ` h h extern [this message]
2005-01-22  1:36           ` Mojca Miklavec
2005-01-15 22:02 ` [metapost] " Laurence Finston

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=41F16C44.4020106@wxs.nl \
    --to=pragma@wxs.nl \
    --cc=ntg-context@ntg.nl \
    /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).