date and time created 88/04/15 11:49:00 by edward
[unix-history] / usr / src / local / transcript / lib / ucseal.ps
%!
% @(#)ucseal.ps 1.1 (Berkeley) %G%
% Postscript version of University of California seal
% Conrad Huang, UCSF Computer Graphics Lab, 1986
0.1 setflat
/showsym {
dup type /stringtype ne
{( ) cvs} if
show currentpoint exch pop 72 exch 16 sub moveto
} def
/showstack {
/Times-Roman findfont 12 scalefont setfont
72 720 moveto /showstack count dup 1 add copy {showsym} repeat pop pop
} def
/pathtextdict 26 dict def
/pathtext
{ pathtextdict begin
/offset exch def
/str exch def
/pathdist 0 def
/setdist offset def
/charcount 0 def
gsave
flattenpath
{movetoproc} {linetoproc}
{curvetoproc} {closepathproc}
pathforall
grestore
newpath
end
} def
pathtextdict begin
/movetoproc
{ /newy exch def /newx exch def
/firstx newx def /firsty newy def
/ovr 0 def
newx newy transform
/cpy exch def /cpx exch def
} def
/linetoproc
{ /oldx newx def /oldy newy def
/newy exch def /newx exch def
/dx newx oldx sub def
/dy newy oldy sub def
/dist dx dup mul dy dup mul add
sqrt def
/dsx dx dist div ovr mul def
/dsy dy dist div ovr mul def
oldx dsx add oldy dsy add transform
/cpy exch def /cpx exch def
/pathdist pathdist dist add def
{ setdist pathdist le
{ charcount str length lt
{setchar} {exit} ifelse }
{ /ovr setdist pathdist sub def
exit }
ifelse
} loop
} def
/curvetoproc
{ (ERROR: No curveto's after flattenpath!)
print
} def
/closepathproc
{ firstx firsty linetoproc
firstx firsty movetoproc
} def
/setchar
{ /char str charcount 1 getinterval def
/charcount charcount 1 add def
/charwidth char stringwidth pop 1.2 mul def %space things out CH
gsave
cpx cpy itransform translate
dy dx atan rotate
0 0 moveto char show
currentpoint transform
/cpy exch def /cpx exch def
grestore
/setdist setdist charwidth add def
} def
end
% Circular text
/outsidecircletext
{ $circtextdict begin
/spacing exch def
/radius exch def
/centerangle exch def
/ptsize exch def
/str exch def
/xradius radius ptsize 4 div add
def
gsave
centerangle str findhalfangle
add rotate
str
{ /charcode exch def
( ) dup 0 charcode put
outsideshowcharandrotate
} forall
grestore
end
} def
/insidecircletext
{ $circtextdict begin
/spacing exch def
/radius exch def
/centerangle exch def
/ptsize exch def
/str exch def
/xradius radius ptsize 3 div sub
def
gsave
centerangle str findhalfangle
sub rotate
str
{ /charcode exch def
( ) dup 0 charcode put
insideshowcharandrotate
} forall
grestore
end
} def
/$circtextdict 16 dict def
$circtextdict begin
/findhalfangle
{ stringwidth pop 2 div
spacing mul % space things out a bit CH
2 xradius mul pi mul div 360 mul
} def
/outsideshowcharandrotate
{ /char exch def
/halfangle char findhalfangle def
gsave
halfangle neg rotate
radius 0 translate
-90 rotate
char stringwidth pop 2 div neg
0 moveto char show
grestore
halfangle 2 mul neg rotate
} def
/insideshowcharandrotate
{ /char exch def
/halfangle char findhalfangle def
gsave
halfangle rotate
radius 0 translate
90 rotate
char stringwidth pop 2 div neg
0 moveto char show
grestore
halfangle 2 mul rotate
} def
/pi 3.1415923 def
end
/randomdash {
[
1 1 rand 3 mod 2 add {
pop
rand 40 mod 5 add
5
} for
]
0 setdash
} def
/ucsealdict 30 dict def
ucsealdict begin
/border {
0 setgray
largesize { 160 } { 106 } ifelse
0 1 2 index {
360 mul 1 index div dup
cos 500 mul exch sin 500 mul
2 copy moveto
8 0 360 arc closepath fill
} for pop
} def % border
/background {
0 setgray
largesize { 3 } { 1 } ifelse setlinewidth
[ 6 21 38 60 115 133 158 175 188 201 216 227 237 259 270 285 313 327 339 350 ]
{ 0 320 moveto dup cos 359 mul exch sin 359 mul lineto }
forall
0 320 moveto
-132.19 -296.902 lineto
0 320 moveto
157.562 -284.252 lineto
stroke
1 setgray
largesize { 9 } { 18 } ifelse setlinewidth
0 390 moveto
20 340 lineto
80 335 lineto
40 305 lineto
50 255 lineto
0 280 lineto
-50 255 lineto
-40 305 lineto
-80 335 lineto
-20 340 lineto
0 390 lineto
closepath stroke
0 setgray
5 setlinewidth
0 0 460 295 245 arc
stroke
0 0 460 250 290 arc
stroke
0 0 360 295 245 arc
stroke
0 0 360 250 290 arc
stroke
0 0 430 246 249 arc
stroke
0 0 430 291 294 arc
stroke
194.403 -416.902 moveto
157.327 -432.259 179.999 -311.77 152.141 -326.271 curveto
stroke
-194.406 -416.901 moveto
-157.331 -432.258 -180.001 -311.768 -152.144 -326.27 curveto
stroke
-157.331 -432.258 moveto
-194.406 -416.901 -93.1762 -347.733 -123.129 -338.289 curveto
stroke
157.327 -432.259 moveto
194.403 -416.902 93.1734 -347.734 123.126 -338.29 curveto
stroke
152.141 -326.271 moveto
236.88 -236.882 -0.00133343 -335 123.126 -338.29 curveto
179.999 -311.77 moveto
169.499 -293.583 lineto
93.1734 -347.734 moveto
87.7383 -327.449 lineto
stroke
-123.129 -338.289 moveto
-0.00133343 -335 -236.882 -236.88 -152.144 -326.27 curveto
-93.1762 -347.733 moveto
-87.7409 -327.449 lineto
-180.001 -311.768 moveto
-169.501 -293.582 lineto
stroke
} def % background
/star {
2 setlinewidth
1 setgray
0 320 moveto
20 340 lineto
80 335 lineto
closepath fill
1 setgray
0 320 moveto
55 317 lineto
40 305 lineto
closepath fill
1 setgray
0 320 moveto
50 255 lineto
0 280 lineto
closepath fill
1 setgray
0 320 moveto
-50 255 lineto
-40 305 lineto
closepath fill
1 setgray
0 320 moveto
-40 305 lineto
-80 335 lineto
closepath fill
1 setgray
0 320 moveto
0 390 lineto
-20 340 lineto
closepath fill
0 setgray
0 320 moveto
0 390 lineto
20 340 lineto
closepath fill
0 setgray
0 320 moveto
80 335 lineto
55 317 lineto
closepath fill
0 setgray
0 320 moveto
40 305 lineto
50 255 lineto
closepath fill
0 setgray
0 320 moveto
0 280 lineto
-50 255 lineto
closepath fill
0 setgray
0 320 moveto
-80 335 lineto
-20 340 lineto
closepath fill
0 setgray
0 390 moveto
20 340 lineto
80 335 lineto
40 305 lineto
50 255 lineto
0 280 lineto
-50 255 lineto
-40 305 lineto
-80 335 lineto
-20 340 lineto
0 390 lineto
closepath stroke
} def % star
/book {
1 setlinewidth
1 setgray
25 210 moveto
230 230 lineto
230 -200 lineto
25 -200 lineto
closepath fill
-25 210 moveto
-230 230 lineto
-230 -200 lineto
-25 -200 lineto
closepath fill
3 setlinewidth
0 setgray
25 210 moveto
230 230 lineto
230 -200 lineto
25 -200 lineto
closepath stroke
-25 210 moveto
-230 230 lineto
-230 -200 lineto
-25 -200 lineto
closepath stroke
-25 -200 moveto
-15 -210 15 -210 25 -200 curveto
0 -210 30 30 150 arc
closepath
gsave 1 setgray fill grestore 0 setgray stroke
/pi 3.141592 def
/leftangle [ 140 130 115 100 90] def
/topleftcornerx [ -215 -205 -195 -185 -175] def
/topleftcornery [ 222 222 222 222 222] def
/bottomleftcornerx [ -215 -205 -195 -185 -175] def
/bottomleftcornery [ -190 -180 -170 -160 -150] def
0 1 4 {
dup /i exch def
2 mod 0 eq largesize or {
leftangle i get
dup cos 30 mul /x exch def sin 30 mul /y exch def
x y 170 add 2 copy moveto
60 add exch 0 add exch
topleftcornerx i get 40 add
topleftcornery i get 0 add
topleftcornerx i get
topleftcornery i get
curveto
bottomleftcornerx i get
bottomleftcornery i get
2 copy lineto
0 add exch 60 add exch
x 0 add y 210 sub 30 add x y 210 sub curveto
gsave 1 setgray fill grestore 0 setgray stroke
} if
} for
/rightangle [ 45 55 70 80 90] def
/toprightcornerx [ 220 210 200 190 180] def
/toprightcornery [ 222 222 222 222 222] def
/bottomrightcornerx [ 220 210 200 190 180] def
/bottomrightcornery [ -185 -175 -165 -155 -145] def
0 1 4 {
dup /i exch def
2 mod 0 eq largesize or {
rightangle i get
dup cos 30 mul /x exch def sin 30 mul /y exch def
x y 170 add 2 copy moveto
60 add exch 0 add exch
toprightcornerx i get -40 add
toprightcornery i get 0 add
toprightcornerx i get
toprightcornery i get
curveto
bottomrightcornerx i get
bottomrightcornery i get
2 copy lineto
0 add exch -60 add exch
x 0 add y 210 sub 30 add x y 210 sub curveto
gsave 1 setgray fill grestore 0 setgray stroke
} if
} for
0 200 moveto
0 -180 lineto
stroke
0 1 23 {
dup /y exch 15 mul 140 sub def
2 mod 0 eq largesize or {
newpath
-155 y 10 add moveto
-155 60 add y 10 add 0 add
-20 0 add y 30 add
-20 y curveto
randomdash stroke
} if
} for
0 1 23 {
dup /y exch 15 mul 140 sub def
2 mod 0 eq largesize or {
newpath
20 y moveto
20 0 add y 30 add
160 -60 add y 10 add
160 y 10 add 0 add curveto
randomdash stroke
} if
} for
[] 0 setdash
1 setgray
-155 150 moveto
-120 150 lineto
-120 200 lineto
-155 200 lineto
closepath fill
0 setgray
-155 150 moveto
-120 150 lineto
-120 200 lineto
-155 200 lineto
closepath stroke
largesize { /Helvetica-Bold } { /Helvetica } ifelse
findfont 40 scalefont setfont
-152 162 moveto (A) show
} def % book
/ribbon {
1 setgray
-260 -130 moveto
-200 -150 -120 -250 -100 -270 curveto
-60 -360 200 -310 90 -200 curveto
90 -270 -20 -245 -50 -225 curveto
-120 -190 -150 -60 -230 -90 curveto
-250 -130 -240 -100 -260 -130 curveto
fill
80 -170 moveto
50 -140 0 -200 90 -200 curveto
70 -170 70 -180 80 -170 curveto
fill
80 -170 moveto
250 -240 360 -110 260 -60 curveto
300 -200 100 -90 50 -130 curveto
55 -140 55 -150 50 -160 curveto
fill
260 -60 moveto
230 -30 150 -120 140 -30 curveto
180 -90 220 30 295 -90 curveto
fill
-250 -130 moveto
-270 -150 -250 -180 -233 -180 curveto
-280 -190 -300 -190 -260 -130 curveto
fill
-220 -200 moveto
-220 -225 lineto
-220 -225 moveto
-200 -240 -230 -260 -200 -275 curveto
-200 -290 -190 -290 -180 -290 curveto
-200 -260 -200 -260 -190 -245 curveto
-190 -250 -170 -260 -160 -260 curveto
-160 -230 -200 -260 -185 -200 curveto
-160 -260 moveto
-160 -270 -130 -280 -150 -260 curveto
fill
140 -30 moveto
140 50 210 60 210 0 curveto
210 20 150 20 150 -40 curveto
fill
210 0 moveto
250 -40 350 0 290 60 curveto
285 30 310 50 280 10 curveto
270 80 225 70 235 70 curveto
245 40 310 0 210 0 curveto
fill
0 setgray
3 setlinewidth
-260 -130 moveto
-200 -150 -120 -250 -100 -270 curveto
-60 -360 200 -310 90 -200 curveto
90 -270 -20 -245 -50 -225 curveto
-120 -190 -150 -60 -230 -90 curveto
-250 -130 -240 -100 -260 -130 curveto
stroke
80 -170 moveto
50 -140 0 -200 90 -200 curveto
70 -170 70 -180 80 -170 curveto
stroke
80 -170 moveto
250 -240 360 -110 260 -60 curveto
300 -200 100 -90 50 -130 curveto
55 -140 55 -150 50 -160 curveto
stroke
260 -60 moveto
230 -30 150 -120 140 -30 curveto
180 -90 220 30 295 -90 curveto
stroke
-250 -130 moveto
-270 -150 -250 -180 -233 -180 curveto
-280 -190 -300 -190 -260 -130 curveto
stroke
-220 -200 moveto
-220 -225 lineto
-220 -225 moveto
-200 -240 -230 -260 -200 -275 curveto
-200 -290 -190 -290 -180 -290 curveto
-200 -260 -200 -260 -190 -245 curveto
-190 -250 -170 -260 -160 -260 curveto
-160 -230 -200 -260 -185 -200 curveto
-160 -260 moveto
-160 -270 -130 -280 -150 -260 curveto
stroke
140 -30 moveto
140 50 210 60 210 0 curveto
210 20 150 20 150 -40 curveto
stroke
210 0 moveto
250 -40 350 0 290 60 curveto
285 30 310 50 280 10 curveto
270 80 225 70 235 70 curveto
245 40 310 0 210 0 curveto
stroke
} def % ribbon
/text {
/Helvetica-Bold findfont 80 scalefont setfont
newpath
(\267THE\267UNIVERSITY\267OF\267CALIFORNIA\267)
90 90 380 1.5 outsidecircletext
/Helvetica-Bold findfont 80 scalefont setfont
newpath
(\2671868\267) 40 270 440 1.2 insidecircletext
largesize { /Helvetica-Bold } { /Helvetica } ifelse
findfont 45 scalefont setfont
newpath
-210 -130 moveto
-100 -250 -50 -340 100 -270 curveto
(LET THERE BE) 0 pathtext
newpath
90 -160 moveto
250 -220 360 -100 260 -90 curveto
(LIGHT) 0 pathtext
} def % text
end
/ucseal { ucsealdict begin
/largesize exch def
border background star book ribbon text
end } def