marshall@software.ORG (Eric Marshall) (04/21/88)
Does anyone have a PostScript program to draw the
Sun logo? I made one myself, and it looks real good, but I was
hoping to get a more accurate specification. Thanks in advance.
Eric Marshall
Software Productivity Consortium
1880 North Campus Commons Drive
Reston, VA 22091
(703) 391-1838
CSNET: marshall@software.org
ARPANET: marshall%software.org@relay.cs.net OR
@relay.cs.net:marshall@software.orgbill@denali.UUCP (Bill Meine [Sun Rocky Mtn TSE]) (04/21/88)
Here's the one I use. Some of the transformations are fairly ugly
(it was derived from someone elses code). It acts as a primitive
that requires a newpath before and adds a sun logo to the currentpath
to use for whatever (even a canvas boundary).
/Sunlogo { % xcenter ycenter s = -
3 1 roll % s xcenter ycenter
matrix currentmatrix 4 1 roll % matrix s xcenter ycenter
translate % matrix s
16 dup mul 2 div sqrt div % s will now represent total height
dup scale % matrix
0 3 dup mul 2 mul sqrt neg translate % new starting point from center
45 rotate
/Uchar {
-.1 0 moveto
0 0 .1 180 360 arc
0 2.9 rlineto
.8 0 rlineto
0 -2.9 rlineto
0 0 .9 0 180 arcn
0 2.9 rlineto
.8 0 rlineto
closepath
} def
/2Uchar { Uchar matrix currentmatrix
4 4 translate Uchar setmatrix
} def
4 { 2Uchar 6 0 translate 90 rotate } repeat
setmatrix % restore original CTM
} def
Try (from psh):
newpath 100 100 150 Sunlogo gsave 1 setgray fill grestore stroke
-Billleres@ucbarpa.Berkeley.EDU (Craig Leres) (04/22/88)
Here's my Sun logo. I wrote it for Postscript not NeWS, but in fact
used NeWS to preview it. To display it, I use something like:
gsave
4 inch dup translate
sun
grestore
Enjoy.
Craig
------
% @(#) $Header: sun.ps,v 1.2 87/08/23 19:36:33 leres Exp $ (LBL)
%
% Draw the Sun logo, scaled for one inch by one inch
%
/sundict 21 dict def
/sun {
sundict begin gsave
% Defines
/inch { 72 mul } bind def
/mm { 2.834 mul } bind def
/thick 42 mm def
/width 400 mm def
/realwidth 2 width mul 2 sqrt div def
/rb 46.5 mm def
/ra rb thick sub def
/x1 0 mm def
/x4 195 mm def
/x2 x4 rb sub def
/x3 x2 ra add def
/y1 0 mm def
/y2 thick def
/y3 thick ra add def
/y5 rb dup add def
/y4 y5 thick sub def
% Scale to one inch, position, and rotate.
1 inch realwidth div dup scale
realwidth 2 div 0 translate
45 rotate
% One Sun segment.
/fnord {
newpath
0 setlinewidth
0 0 moveto
x4 y1 x4 y3 rb arcto 4 {pop} repeat
x4 y5 x3 y5 rb arcto 4 {pop} repeat
x1 y5 lineto
x1 y4 lineto
x3 y4 x3 y3 ra arcto 4 {pop} repeat
x3 y2 x2 y2 ra arcto 4 {pop} repeat
x1 y2 lineto
closepath
fill
} def
% Two Sun segment.
/gronk {
fnord
gsave
x4 dup translate
180 rotate
fnord
grestore
} def
gsave
x4 0 translate
90 rotate
gronk
grestore
gsave
width x4 sub 0 translate
gronk
grestore
gsave
0 width x4 sub translate
gronk
grestore
gsave
width width x4 sub translate
90 rotate
gronk
grestore
grestore end
} defleres@ucbarpa.Berkeley.EDU (Craig Leres) (04/29/88)
For the numerous Postscript illiterates out there, you must append:
/inch { 72 mul } bind def
gsave
4 inch dup translate
sun
grestore
showpage
to the Sun logo Postscript code I recently posted before spooling
to a Laserwriter. To make the logo larger, insert a "2 dup scale"
or "4 dup scale" before the translate line.
Craig