Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.postscript > #753
| From | gernot.hoffmann@hs-emden-leer.de |
|---|---|
| Newsgroups | comp.lang.postscript |
| Subject | Re: setrgbcolor with lineto/curveto |
| Date | 2012-06-19 00:34 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <abf9fc36-51db-4d7f-9531-e5bd7b23f0e5@googlegroups.com> (permalink) |
| References | <jra5b7$mqu$1@reader1.panix.com> <e541e1bb-8ccd-4742-b96f-ab48ee60c0a7@googlegroups.com> <jrp82q$m5o$1@reader1.panix.com> |
On Tuesday, June 19, 2012 9:00:42 AM UTC+2, JohnF wrote:
> gernot hoffmann wrote:
> > Below a simple solution, using basic Bezier definitions.
> >
> > http://www.fho-emden.de/~hoffmann/bezier18122002.pdf
> > page 2
> >
> > Best regards --Gernot Hoffmann
>
> Thanks a lot for your help again, Prof. Hoffmann (I recall your
> previous help in comp.graphics.algorithms, which was regarding
> the same little decorative program www.forkosh.com/lineart.html
> that I'm further modifying now).
>
> I took your solution and simplified it a bit as illustrated below,
> replacing bezier curves with straight lines so I could follow your
> postscript ideas more easily. After that worked, I abstracted your
> 100-step loop into a function /Coline so that the program can draw
> many lines,
> % X0,Y0=start point, X1,Y1=end point
> /X0 1.0 def /Y0 0.0 def
> /X1 0.0 def /Y1 1.0 def
> Coline
> /X0 0.0 def /Y0 0.0 def
> /X1 1.0 def /Y1 1.0 def
> Coline
> So the example below just draws a big X. Ultimately, the program
> will first generate your "stub" at top, followed by many, many,
> many X0,Y0,X1,Y1 lines. Then I'll re-introduce your original /Func
> (and /Coeff and control points) for bezier curveto's.
> Thanks again, John (sig and email at bottom)
> -----
>
> %!PS-Adobe-3.0 EPSF-3.0
> %%BoundingBox: 0 0 340 340
> %%Creator: Gernot Hoffmann
> %%Title: Color interpolation along line
> %%CreationDate: June 15 / 2012
>
> % Bezier Reference:
> % http://www.fho-emden.de/~hoffmann/bezier18122002.pdf
> % page 2
>
> % RGB0=Start color, RGB1=End color
> /R0 0.0 def /G0 0.5 def /B0 0.0 def
> /R1 1.0 def /G1 0.5 def /B1 0.0 def
>
> % number of steps
> /N 100 def % e.g. 100 subdivisions
> /dt 1 N div def
>
> /Ipol % color interpolation R = (R1-R0)*t + R0, similarly for G,B
> {/r R1 R0 sub t mul R0 add def
> /g G1 G0 sub t mul G0 add def
> /b B1 B0 sub t mul B0 add def
> r g b setrgbcolor
> } def
>
> /Func % straight line x = (X1-X0)*t + X0, similarly for y
> {/x X1 X0 sub t mul X0 add def
> /y Y1 Y0 sub t mul Y0 add def
> } def
>
> /Coline % color line
> {/t 0 def
> Func
> N
> {
> Ipol
> x y moveto
> /t t dt add def
> Func
> x y lineto stroke
> } repeat
> } def
>
> /mm {2.834646 mul} def
> 100 mm 100 mm scale
>
> 0.1 0.1 translate
>
> % black axis lines
> 0.001 setlinewidth
> 0 0 moveto 1 0 lineto stroke
> 0 0 moveto 0 1 lineto stroke
>
> % color lines
> 0.01 setlinewidth
>
> % X0,Y0=start point, X1,Y1=end point
> /X0 1.0 def /Y0 0.0 def
> /X1 0.0 def /Y1 1.0 def
> Coline
>
> % X0,Y0=start point, X1,Y1=end point
> /X0 0.0 def /Y0 0.0 def
> /X1 1.0 def /Y1 1.0 def
> Coline
>
> showpage
>
> -----
>
> --
> John Forkosh
John,
thanks for the feedback. Feel free to modify anything.
My programming style ignores widely special PostScript
features, because it is based on named variables instead
of immediate stack operations. This improves understanda-
bility for non-PS-experts...
Best regards --Gernot Hoffmann
Back to comp.lang.postscript | Previous | Next — Previous in thread | Next in thread | Find similar
setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-06-13 13:41 +0000
Re: setrgbcolor with lineto/curveto Helge Blischke <h.blischke@acm.org> - 2012-06-13 16:16 +0200
Re: setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-06-13 16:04 +0000
Re: setrgbcolor with lineto/curveto Odysseus <odysseus1479-at@yahoo-dot.ca> - 2012-06-13 20:20 -0600
Re: setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-06-14 04:05 +0000
Re: setrgbcolor with lineto/curveto luser- -droog <mijoryx@yahoo.com> - 2012-06-16 14:45 -0700
Re: setrgbcolor with lineto/curveto luser- -droog <mijoryx@yahoo.com> - 2012-06-13 16:20 -0700
Re: setrgbcolor with lineto/curveto luser- -droog <mijoryx@yahoo.com> - 2012-06-13 17:16 -0700
Re: setrgbcolor with lineto/curveto luser- -droog <mijoryx@yahoo.com> - 2012-06-13 17:36 -0700
Re: setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-06-14 04:11 +0000
Re: setrgbcolor with lineto/curveto luser- -droog <mijoryx@yahoo.com> - 2012-06-14 09:05 -0700
Re: setrgbcolor with lineto/curveto gernot.hoffmann@hs-emden-leer.de - 2012-06-16 11:00 -0700
Re: setrgbcolor with lineto/curveto gernot.hoffmann@hs-emden-leer.de - 2012-06-16 10:55 -0700
Re: setrgbcolor with lineto/curveto gernot.hoffmann@hs-emden-leer.de - 2012-06-16 11:23 -0700
Re: setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-06-19 07:00 +0000
Re: setrgbcolor with lineto/curveto gernot.hoffmann@hs-emden-leer.de - 2012-06-19 00:34 -0700
Re: setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-06-19 08:12 +0000
Re: setrgbcolor with lineto/curveto John Deubert <john@acumentraining.com> - 2012-06-30 10:20 -0700
Re: setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-07-04 03:07 +0000
Re: setrgbcolor with lineto/curveto luser- -droog <mijoryx@yahoo.com> - 2012-07-05 16:24 -0700
Re: setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-07-06 14:23 +0000
Re: setrgbcolor with lineto/curveto JohnF <john@please.see.sig.for.email.com> - 2012-07-11 01:57 +0000
Re: setrgbcolor with lineto/curveto tlvp <mPiOsUcB.EtLlLvEp@att.net> - 2012-07-11 01:08 -0400
Re: setrgbcolor with lineto/curveto luser- -droog <mijoryx@yahoo.com> - 2012-07-12 03:12 -0700
Re: setrgbcolor with lineto/curveto tlvp <mPiOsUcB.EtLlLvEp@att.net> - 2012-07-12 22:20 -0400
csiph-web