Wiederholungen (Rosette mit Graustufen)


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

% Dieses Programm druckt eine Rosette aus 12 gleichen Teilen. Zunaechst wird
% ein einzelnes Element definiert und dann nach Drehung des Koordinatensystems
% mehrfach gedruckt. Das Programm demonstriert die Benutzung der Operatoren arc
% und for und zeigt, wie Koordinatentransformationen geschachtelt werden
% koennen, um fuer Teile des Entwurfs das jeweils bequemste Koordinatensystem
% zu erreichen.

/Element                % Definition eines Elements, bestehend aus einem 30
{ newpath               % Grad Winkel, der von einem Halbkreis geschlossen wird.
  0 0 moveto            % Der Pfad beginnt im aktuellen Ursprung
  1 0 translate         % Ursprung um eine Einheit nach rechts
  15 rotate             % Koord.s. um 15 Grad gegen den Uhrzeigersinn drehen
  0 15 sin translate    % Ursprung um den Radius des Halbkreises nach 'oben'
                        % verschieben
  0 0 15 sin -90 90 arc % Der arc-Befehl zeichnet zusaetzlich eine gerade Linie
                        % vom aktuellen Punkt zum Anfang des Halbkreises, der
                        % von -90 bis 90 Grad um den Ursprung des transformier-
                        % ten und rotierten Koordinatensystems reicht.
  closepath
} def

%%EndProlog

%%Page: 1 1
gsave                   % Aktuelles Koordinatensystem merken
250 500 translate       % Position fuer einzelnes Musterelement
100 100 scale           % Schenkellaenge = 100 Punkt
0.01 setlinewidth       % Linienstaerke = 1 Punkt
Element stroke          % Element zeichnen
grestore                % Altes Koordinatensystem wieder herstellen
gsave                   % Aktuelles Koordinatensystem merken
300 300 translate       % Position fuer Rosette
100 100 scale           % Schenkellaenge = 100 Punkt
0.01 setlinewidth       % Linienstaerke = 1 Punkt

1 1 12                  % for-Schleife mit 12 Iterationen
{ 12 div setgray        % Graustufe = Schleifenindex durch 12
  gsave                 % Aktuelles Koordinatensystem merken
  Element               % Element zeichnen
  gsave fill grestore   % Aktuellen Pfad merken, damit er nach fill nochmal
                        % benutzt werden kann
  0 setgray stroke      % Schwarzen Rand um das Element zeichnen
  grestore              % Koord.s. wieder herstellen, da es durch Element ver-
                        % aendert wurde
  30 rotate             % Rotation um 30 Grad fuer naechstes Element
} for                   % Ende der for-Schleife
grestore                % Altes Koordinatensystem wieder herstellen

showpage                % Seite ausgeben

%%Trailer
%%Pages: 1


Vorschau:

Download PostScript-File

© Holger Gehringer, Dezember 1998