%
%          Programm zum Erzeugen des Signets der Universitaet Stuttgart
%          mit METAFONT (Version 1.7....)
%
% Autor:   Wolfgang Schwarz, Institut f. Theoret. und Angewandte Physik
%         
%          Das Unilogo ist als Buchstabe L des mit diesem Programm
%          erzeugten Fonts anzusprechen
%          
%          Weitergabe an Dritte nur mit Zustimmung des Autors!
%  
mode_setup;
hoehe#:=9.8pt#;                %    Logo-Grundseite
define_pixels(hoehe);
halbe:=(0.57/16)*hoehe; %    halbe Diagonale einer einzelnen Raute
beginchar("L",hoehe#,hoehe#,0);
%
%        Grundroutine zum Erzeugen einer Raute
%                                
def raute(expr x,y,winkel)=fill(halbe,0)--(2halbe,halbe)--(halbe,2halbe)
--(0,halbe)--cycle shifted (x+(1/2hoehe-1halbe),y+(1/2hoehe-1halbe))
rotatedaround ((1/2hoehe,1/2hoehe),winkel);
enddef;
%
%        Routine zum Erzeugen eines Viertels des Logos aus 42 Rauten
%
def viertel(expr winkel) =                              
raute(0.000hoehe,0.000hoehe,winkel);
raute(0.091hoehe,0.000hoehe,winkel);
raute(0.205hoehe,0.000hoehe,winkel);
raute(0.342hoehe,0.000hoehe,winkel);
raute(0.500hoehe,0.000hoehe,winkel);
raute(0.000hoehe,0.500hoehe,winkel);            
% Y-Axis (0,*)
raute(0.000hoehe,0.342hoehe,winkel);
raute(0.000hoehe,0.205hoehe,winkel);
raute(0.000hoehe,0.091hoehe,winkel);
raute(0.000hoehe,0.091hoehe,winkel);
raute(0.000hoehe,0.205hoehe,winkel);
raute(0.000hoehe,0.342hoehe,winkel);
raute(0.000hoehe,0.500hoehe,winkel);
raute(0.041hoehe,0.041hoehe,winkel);             
% First winkel (+,+)
raute(0.087hoehe,0.087hoehe,winkel);
raute(0.137hoehe,0.137hoehe,winkel);
raute(0.191hoehe,0.191hoehe,winkel);
raute(0.249hoehe,0.249hoehe,winkel);
raute(0.311hoehe,0.311hoehe,winkel);
raute(0.377hoehe,0.377hoehe,winkel);
raute(0.144hoehe,0.046hoehe,winkel);
raute(0.046hoehe,0.144hoehe,winkel);
raute(0.202hoehe,0.097hoehe,winkel);
raute(0.097hoehe,0.202hoehe,winkel);
raute(0.263hoehe,0.152hoehe,winkel);
raute(0.152hoehe,0.263hoehe,winkel);
raute(0.270hoehe,0.051hoehe,winkel);
raute(0.051hoehe,0.270hoehe,winkel);
raute(0.328hoehe,0.211hoehe,winkel);
raute(0.211hoehe,0.328hoehe,winkel);
raute(0.338hoehe,0.107hoehe,winkel);
raute(0.107hoehe,0.338hoehe,winkel);
raute(0.398hoehe,0.274hoehe,winkel);
raute(0.274hoehe,0.398hoehe,winkel);
raute(0.412hoehe,0.166hoehe,winkel);
raute(0.166hoehe,0.412hoehe,winkel);
raute(0.418hoehe,0.056hoehe,winkel);
raute(0.056hoehe,0.418hoehe,winkel);
raute(0.488hoehe,0.231hoehe,winkel);
raute(0.231hoehe,0.488hoehe,winkel);
raute(0.498hoehe,0.116hoehe,winkel);
raute(0.116hoehe,0.498hoehe,winkel);
enddef;                    
%
%                "Hauptprogramm"
for quadrant=0 upto 3:
winkel:=quadrant*90;
viertel(winkel) endfor
endchar;
                                  
