Der Operator makefont kann jeden PostScript-Font auf verschiedene Arten verändern. Im Beispiel hat Adobe die Illusion einer Dreidimensionalität geschaffen, indem der Buchstabe B mit makefont schmaler gemacht und schief gestellt wird; die Operanden: sx = Skalierung des Buchstaben horizontal, sy = Skalierung vertikal, stan = Neigung. Achtung: Neigung eines Buchstaben um 45 Grad und Rotation des Buchstaben um 45 Grad sind zwei verschiedene Dinge. makefont wird von der Routine getfont aufgerufen. Ferner dient der Operator moveto dazu, die verschiedenen Varianten richtig zu plazieren.
%!PS-Adobe Systems Inc. -Colophon 3
%%DocumentFonts: Korinna-Regular
%%Title: makefont.ps
% Das Programm zeichnet einen Kubus (Wuerfel),
% dessen Seiten aus Buchstaben bestehen.
/cube {
/masterfont /Korinna-Regular findfont def
% Als Operanden muessen 6 Buchstaben
% angegeben werden.
/front exch def
/leftside exch def
/back exch def
/rightside exch def
/top exch def
/bottom exch def
% Berechnung von stan:
% Der Quotient sin a / cos a
% wird mit der Buchstabenhoehe
% multipliziert.
/stan {a sin a cos div sy mul} def
/getfont {masterfont [sx 0 stan sy 0 0]
makefont setfont} def
% Variable a = Neigungswinkel
gsave
/sy 100 def
/sx 100 def
/a 0 def % nicht geneigt
getfont
40 50 moveto
.75 setgray
back show % Buchstabe hinten
grestore
gsave
/a 45 def % um 45 Grad geneigt
/sy sy 2 sqrt div def
/sx 70 def
getfont
0 0 moveto
.60 setgray
bottom show % Buchstabe unten
grestore
gsave
getfont
70 0 moveto
45 rotate % um 45 Grad rotiert
% und um 45 Grad geneigt
.1 setgray
rightside show % Buchstabe rechts
grestore
gsave
getfont
0 7 moveto
45 rotate % um 45 Grad rotiert
% und um 45 Grad geneigt
.40 setgray
leftside show % Buchstabe links
grestore
gsave
/a 0 def % nicht geneigt
/sy 100 def
/sx 100 def
getfont
0 0 moveto
.20 setgray
front show % Buchstabe vorne
grestore
gsave
/sy sy 2 sqrt div def
/a 45 def % um 45 Grad geneigt
/sx 70 def
getfont
0 70 moveto
top show % Buchstabe oben
grestore
} def % Ende von cube
%%EndProlog
Somit ist die Prozedur cube definiert und kann
aufgerufen werden:
gsave 200 300 translate 2.0 2.0 scale (B) (B) (B) (B) (B) (B) cube grestore showpage %%TrailerMit dem Operator makefont lässt sich ein Schrifttyp also unabhängig von der Höhe schmaler oder breiter machen und beliebig neigen.
Das Beispiel Das kubische "B" beruht statt auf Korinna-Regular auf dem Universalfont Helvetica-Bold.
Last update: 14-JUL-97/vo