[NTG-context] shading in meta[post/play] & PDF

Mojca Miklavec mojca.miklavec at guest.arnes.si
Fri Jan 21 00:47:37 CET 2005

Hans Hagen wrote:

> Mojca Miklavec wrote:
>> How can I make shading inside metapost(play) to produce exactly what's 
>> in the attached picture (smooth shades). Or more generally: how can I 
>> "hardcode" some PS/PDF code in .mp, not (yet) supported by 
>> metapost(play)?
> certain kind of native level 2 shaded can be done with the metafun 
> macros (circular and linear vector based)
> a couple of years ago mathew baker and i played with more advanced 
> features using functions and such but i need to locate that code;
> if you're willing to figure out what (in pdf) functionality is needed i 
> can extend the current metapost shading handler with a few more 
> alternatives [the function based ones, since that's what you're looking 
> for])

I'm not sure if I understood the question correctly (about what should I 
figure out).

I would like to draw a sphere (possibly with different colors on 
different points of the sphere; which would then be interpolated across 
the whole surface).

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.

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.

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 

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.

Thank you,

More information about the ntg-context mailing list