Ellipsen


%!PS-Adobe-1.0
%%Creator: Holger Gehringer
%%Title: Beispiel fuer Ellipsen
%%CreationDate: Mo, 23.11.1998
%%DocumentMedia: A4 595 842 0 () ()
%%Orientation: Portrait
%%Pages: (atend)
%%DocumentFonts: Times-Roman Helvetica
%%EndComments

% Dieses Programm zeigt, wie mit Hilfe der eingebauten POSTSCRIPT-Primitiven
% Ellipsen gezeichnet werden koennen. Darueberhinaus wird der Gebrauch von
% 'lokalen' Variablen mit Hilfe eines Dictionary demonstriert.

/Ellipsedict 7 dict def       % Dieses Dictionary bietet lokalen Speicher
                              % fuer die Prozedur 'Ellipse'

/Ellipse                      % Diese Prozedur fuegt ein Ellipsensegment (im
                              % Uhrzeigergegensinn) an den aktuellen Pfad an.
{ Ellipsedict begin           % Dieser Befehl bringt 'Ellipsedict' auf den
                              % Dictionary-Stack und sorgt zusammen mit dem
                              % 'end' am Schluss dafuer, dass alle 'def'-De-
                              % klarationen lokal zu dieser Prozedur bleiben.
    /endangle exch def        % Endwinkel des Ellipsensegments
    /startangle exch def      % Startwinkel des Ellipsensegments
    /yrad exch def            % 'Radius' in y-Richtung
    /xrad exch def            % 'Radius' in x-Richtung
    /y exch def               % y-Koordinate des 'Mittelpunkts'
    /x exch def               % x-Koordinate des 'Mittelpunkts'
    /savematrix               % Das aktuelle Koord.system in 'savematrix'
    matrix currentmatrix def  % merken, damit die folgenden Transformationen
                              % spaeter wieder rueckgaengig gemacht werden
                              % koennen. (Das kann nicht mit 'gsave/grestore'
                              % geschehen, da letzteres auch den aktuellen
                              % Pfad zuruecksetzen wuerde.)
    x y translate             % Den Ursprung in den Mittelpunkt der Ellipse
                              % verschieben
    xrad yrad scale           % Das Koordinatensystem entsprechend den x-
                              % und y-Radius-Werten skalieren
    0 0 1 startangle          % Ein Kreisbogen mit Radius 1 und dem Mittel-
    endangle arc              % punkt im Ursprung wird erzeugt
    savematrix setmatrix      % Transformationen rueckgaengig machen
  end                         % Entfernt 'Ellipsedict' vom Dictionary-Stack
} def

%%EndProlog

%%Page: 1 1
newpath                       % Der Umriss einer vollstaendigen Ellipse wird
144 400 72 144 0 360 Ellipse  % gezeichnet.
stroke

newpath                       % Ein Teilbogen einer Ellipse wird gezeichnet
300 180 144 72 30 150 Ellipse
stroke

newpath                       % Eine Ellipse wird mit einem Grau-Raster
400 400 144 36 0 360 Ellipse  % gefuellt
.5 setgray fill

newpath                       % Ein Teilbogen einer Ellipse wird mit einem
480 150 30 50 270 90 Ellipse  % Raster gefuellt. Da die Prozedur 'Ellipse'
fill                          % einen offenen Pfad erstellt hat, wird dieser
                              % durch 'fill' implizit geschlossen.
showpage

%%Trailer
%%Pages: 1


Vorschau:

Download PostScript-File

© Holger Gehringer, Dezember 1998