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 -----------------------------------------------------------------

_______________________________________________
ntg-context mailing list
ntg-context@ntg.nl
http://www.ntg.nl/mailman/listinfo/ntg-context

Reply via email to