ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Re: [metapost] shading in meta[post/play] & PDF
       [not found] <E1Cpr7m-00053y-00@topo.math.u-psud.fr>
@ 2005-01-15 22:37 ` Laurence Finston
  0 siblings, 0 replies; 6+ messages in thread
From: Laurence Finston @ 2005-01-15 22:37 UTC (permalink / raw)
  Cc: mailing list for ConTeXt users, metapost

Laurence Finston wrote:

> 
> If you mean my spheres, that's an artefact of the PNG graphics.  

Actually, I think it may be because of  the high magnification I used in order
to get the glyphs to be a reasonable size when viewed using a browser.   It
would probably work better to make the characters bigger in the first place. 
It might also be because browsers display graphics with low resolution.   I
don't know much about browsers, though, so this is just a hypothesis.  I'll
see if I can improve this when I revise the font.

Laurence Finston
http://www.gnu.org/software/3dldf/LDF.html
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [metapost] shading in meta[post/play] & PDF
  2005-01-19 10:00   ` Mojca Miklavec
  2005-01-19 10:59     ` Laurence Finston
@ 2005-01-19 11:48     ` Hans Hagen
  1 sibling, 0 replies; 6+ messages in thread
From: Hans Hagen @ 2005-01-19 11:48 UTC (permalink / raw)


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

[more a context mailing list issue than a metapost list issue]

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [metapost] shading in meta[post/play] & PDF
  2005-01-19 10:00   ` Mojca Miklavec
@ 2005-01-19 10:59     ` Laurence Finston
  2005-01-19 11:48     ` Hans Hagen
  1 sibling, 0 replies; 6+ messages in thread
From: Laurence Finston @ 2005-01-19 10:59 UTC (permalink / raw)
  Cc: mailing list for ConTeXt users, metapost

On Wed, 19 Jan 2005, 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)?
>

This is a very difficult question.  For an excellent introduction
to shading and other subjects I recommend:

Jones, Huw.
_Computer Graphics through Key Mathematics_.
Springer-Verlag London Limited 2001.
ISBN 1-85233-422-3.

>
> Here's the corresponding PostScript code:
>

Sorry, I don't know PostScript.

>
> >>The spheres drawn directly in PostScript as in the examples above still
> >>have straight lines (well, I agree that with some mathematics it would
> >>be possible to draw them with proper splines as well).
> >>

To the best of my knowledge, spline curves are drawn by means of
calculating short line segments.  You can make the "time" parameter
as small as you like, but you can't make it 0.

I believe plotters can draw genuine curves---and it's a lot more
fun to watch them work (it's like magic).
They're not so great at filling in regions,
though.  Much to my regret, the computer center here got rid of
the plotter.  They're probably as obsolete as the ENIAC now, except
perhaps for very high-quality work.

> Thank you,

My pleasure.

Laurence

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [metapost] shading in meta[post/play] & PDF
  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
  0 siblings, 2 replies; 6+ messages in thread
From: Mojca Miklavec @ 2005-01-19 10:00 UTC (permalink / raw)
  Cc: metapost

[-- Attachment #1: Type: text/plain, Size: 4590 bytes --]


The answer to the mail follows, but to reformulate my question slightly:

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

(PDF supports even 3D shapes (already shaded properly) since version 1.5 
or 1.6, but I suppose that's another story anyway.)

Here's the corresponding PostScript code:

%!PS-Adobe-3.0 Resource-ProcSet
%%Title: Hsbwheel.ps
%%Creator: Henry McGilton, Adobe Systems Incorporated (modified!)
%%EndComments

200 dup scale

/X3  1.0 3 div def
/X6  2.0 3 div def
/Y3  1.0 3 div def
/Y6  2.0 3 div def

/middlecolor  [ 1    1   1 ] def
/topcolor     [ 1    0   0 ] def
/rightcolor   [ 0.5  0   1 ] def

newpath
<<
     /ShadingType 6
     /ColorSpace /DeviceRGB
     /DataSource [
         0
           0.0 0.0    X3 0.0     X6  0.0   1.0 0.0
           1.0 .552   .552 1.0   0.0 1.0
           0.0 Y6     0.0 Y3     0.0 0.0   0.0 0.0    0.0 0.0
           middlecolor aload pop    rightcolor  aload pop
           topcolor   aload pop     middlecolor aload pop
     ]
 >> shfill

showpage

************************************************************************

Laurence Finston wrote:

> Mojca Miklavec wrote:
> 
> 
>>There's a wonderful tutorial on drawing 3D graphics in PostScript on 
>>http://www.math.ubc.ca/~cass/graphics/manual/, specifically
>>http://www.math.ubc.ca/~cass/graphics/manual/code/doughnut.eps as an 
>>example.
> 
> 
> Thanks for the reference, it looks very interesting.
> 
> 
>>In metapost, "perfect" spheres can be drawn, like on 
>>http://www.gnu.org/software/3dldf/cdsmpls.html. But how can I add > colour?
> 
> 
> The spheres in that example are really just circles.  The "globe font" was
> done using Metafont, which doesn't support color at all.  The sphere graphic
> at the beginning of that file was done using MetaPost, so the circles could be
> drawn in color, but I know this isn't what you mean.

Well - the main question is how to add the proper (smooth shading) color 
once I calculate the grid points in one way or another.

> The glyphs from the globe font (which I plan to improve) could be colored,
> e.g., by using the macros defined in the `colordvi.tex' file supplied with
> `dvips'.  Of course, a given glyph could only be printed or displayed in a
> single color.
> 
> GNU 3DLDF does not yet possess a `sphere' type, but I plan to add one in the
> not-too-distant future.  I also plan to add shading, but that is in the more
> distant future.  The shading methods I'm (vaguely) familiar with operate on
> raster data and I haven't quite decided how to handle rasterization.  I'm
> leaning toward using the PNG format rather than PostScript for this.  I
> believe PostScript can be used for both vector and raster data, but my memory
> of the details is hazy.

Well, PostScript can be used for raster images, but that doesn't bring 
anything. The examples on Cass' page are actually done using *vector* 
graphics (colors are really calculated only in grid points, but then the 
color is interpolated by postscript interpreter): the perfect sphere 
coloring is thus really limited to "floating point accuracy" and printer 
capabilities.

>>The spheres drawn directly in PostScript as in the examples above still 
>>have straight lines (well, I agree that with some mathematics it would 
>>be possible to draw them with proper splines as well).
>>
> 
> 
> If you mean my spheres, that's an artefact of the PNG graphics.  The
> PostScript versions look nicer.  I believe that on commonly available devices,
>  curves are ultimately drawn as short straight-line segments, though.  In the
> code in that file, the circles have 64 points, and I thought the results were
> good enough.  Raising it to some value x such that x % 4 == 0 and x > 64 might
> improve them, I haven't tried it.  32 wasn't enough.

No, I wasn't talking about the PNGs. I was talking about the PostScript 
pictures. http://www.math.ubc.ca/~cass/graphics/manual/code/doughnut.eps 
has a really *perfect* shading, but its edges are drawn using straight 
segments instead of drawing them with splines which damages slightly the 
whole impression of its perfectness. Some additional calculation for 
spline drawing would help, but I still find it easier to calculate the 
curves in metapost than in PostScript.

Those "straight-line segments" on printers are just as straight as they 
are on any laser print-out of texts if I'm not wrong - i.e. not worth 
considering.

Thank you,
	Mojca


[-- Attachment #2: hsbwheel.pdf --]
[-- Type: application/pdf, Size: 1977 bytes --]

[-- Attachment #3: Type: text/plain, Size: 139 bytes --]

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [metapost] shading in meta[post/play] & PDF
  2005-01-15  5:16 Mojca Miklavec
  2005-01-15 21:04 ` [metapost] " Laurence Finston
@ 2005-01-15 22:02 ` Laurence Finston
  1 sibling, 0 replies; 6+ messages in thread
From: Laurence Finston @ 2005-01-15 22:02 UTC (permalink / raw)
  Cc: mailing list for ConTeXt users, metapost

> 
> In metapost, "perfect" spheres can be drawn, like on 
> http://www.gnu.org/software/3dldf/cdsmpls.html. But how can I add colour?

You could use the intersection points of the circles as the corners of
rectangles and fill the latter.  The more circles you use, the better the
results will be.  The very primitive surface hiding I've implemented will
almost certainly fail, so you'll have to do this by hand or implement it
yourself.  You may be able to implement surface hiding and/or shading by
operating on the MetaPost file generated by GNU 3DLDF, or by the PostScript
file generated by MetaPost.

Laurence

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [metapost] shading in meta[post/play] & PDF
  2005-01-15  5:16 Mojca Miklavec
@ 2005-01-15 21:04 ` Laurence Finston
  2005-01-19 10:00   ` Mojca Miklavec
  2005-01-15 22:02 ` Laurence Finston
  1 sibling, 1 reply; 6+ messages in thread
From: Laurence Finston @ 2005-01-15 21:04 UTC (permalink / raw)
  Cc: mailing list for ConTeXt users, metapost

Mojca Miklavec wrote:

> There's a wonderful tutorial on drawing 3D graphics in PostScript on 
> http://www.math.ubc.ca/~cass/graphics/manual/, specifically
> http://www.math.ubc.ca/~cass/graphics/manual/code/doughnut.eps as an 
> example.

Thanks for the reference, it looks very interesting.

> 
> In metapost, "perfect" spheres can be drawn, like on 
> http://www.gnu.org/software/3dldf/cdsmpls.html. But how can I add > colour?

The spheres in that example are really just circles.  The "globe font" was
done using Metafont, which doesn't support color at all.  The sphere graphic
at the beginning of that file was done using MetaPost, so the circles could be
drawn in color, but I know this isn't what you mean.   
The glyphs from the globe font (which I plan to improve) could be colored,
e.g., by using the macros defined in the `colordvi.tex' file supplied with
`dvips'.  Of course, a given glyph could only be printed or displayed in a
single color.

GNU 3DLDF does not yet possess a `sphere' type, but I plan to add one in the
not-too-distant future.  I also plan to add shading, but that is in the more
distant future.  The shading methods I'm (vaguely) familiar with operate on
raster data and I haven't quite decided how to handle rasterization.  I'm
leaning toward using the PNG format rather than PostScript for this.  I
believe PostScript can be used for both vector and raster data, but my memory
of the details is hazy.

> 
> The spheres drawn directly in PostScript as in the examples above still 
> have straight lines (well, I agree that with some mathematics it would 
> be possible to draw them with proper splines as well).
> 

If you mean my spheres, that's an artefact of the PNG graphics.  The
PostScript versions look nicer.  I believe that on commonly available devices,
 curves are ultimately drawn as short straight-line segments, though.  In the
code in that file, the circles have 64 points, and I thought the results were
good enough.  Raising it to some value x such that x % 4 == 0 and x > 64 might
improve them, I haven't tried it.  32 wasn't enough.

Laurence Finston
http://www.gnu.org/software/3dldf/LDF.html

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2005-01-19 11:48 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <E1Cpr7m-00053y-00@topo.math.u-psud.fr>
2005-01-15 22:37 ` [metapost] shading in meta[post/play] & PDF Laurence Finston
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-15 22:02 ` Laurence Finston

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