[LUGA] Mit freundlicher Unterstützung von:
init.at

Mail Thread Index


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[luga] Osterei gefunden!



Hallo

Und nun zu etwas ganz anderem:

Habe eine Konstruktionsvorschrift fuer ein Osterei gefunden:
(vielleicht interessiert es ja doch jemanden)
Mit der Hilfskonstruktion, 
die man auch loeschen kann, sollte es verstaendlich sein.
Anschauen kann man es sich mit ghostview.

----- cut -----
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 200 200
%%Creator: ich
%%Title: Ei
%%CreationDate: april 98
%
% Konstruktion eines Ei's.
%
%%EndComments

% Position (etwa Ei-Mitte):

/x 100 def
/y 80 def

% x waechst von links nach rechts
% y waechst von unten nach oben
% Das gesamte Ei sollte innerhalb der BoundingBox bleiben
% (siehe zweite Zeile)

% Parameter:
% Radius:

/r 60 def

% Winkel (in Grad; Modifikationsbereich: 0 bis 60 Grad):

/a 50 def

% Starte Zeichnen:
% Bewege den Schreiber auf die Koordinaten: (X,Y)=(x - r,y)

x r sub y moveto

% Zeichne Kreisbogen: M_1(X,Y)=(x,y); R_1=r; Winkel: 180 bis 360
% (untere Haelfte; Gegenuhrzeigersinn; Winkel 0 entspricht positive x-Achse)

x y r 180 360 arc

% Zeichne Kreisbogen: M_2(X,Y)=(x - r,y); R_2=2 r; Winkel: 0 bis a

x r sub y 2 r mul 0 a arc

% Zeichne Kreisbogen: M_3(X,Y)=(x,y + r tan a); R_3=2 r - (cos a) / r;
% Winkel: a bis 180 - a

x y a sin a cos div r mul add 2 r mul r a cos div sub a 180 a sub arc

% Zeichne Kreisbogen: M_4(X,Y)=(x + r,y); R_4=2 r; Winkel: 180 - a bis 180

x r add y 2 r mul 180 a sub 180 arc

% und auszeichnen:
stroke

% Ein paar Hilfskonstruktionen:
% Wenn nur das Ei gezeichnet werden soll,
% kann von HIER bis DORT geloescht werden.
% HIER

0.5 setlinewidth

x r sub y moveto
x r add y lineto stroke

x y moveto
x y 2 sqrt r mul add lineto stroke

x r sub y moveto
x r sub 2 r mul a cos mul add y 2 r mul a sin mul add lineto stroke

x r add y moveto
x r add 2 r mul a cos mul sub y 2 r mul a sin mul add lineto stroke

x 2 sub y moveto
x y 2 0 360 arc stroke

x 2 sub r sub y moveto
x r sub y 2 0 360 arc stroke

x 2 sub r add y moveto
x r add y 2 0 360 arc stroke

x r sub r 2 div add y moveto
x r sub y r 2 div 0 a arc stroke

x 2 sub y a sin a cos div r mul add moveto
x y a sin a cos div r mul add 2 0 360 arc stroke

/show-tr12 { /Times-Roman findfont 12 scalefont setfont show } bind def
/show-tr8  { /Times-Roman findfont 8 scalefont setfont show } bind def
/show-sy12 { /Symbol findfont 12 scalefont setfont show } bind def

x y 12 sub moveto
(M) show-tr12
0 -3 rmoveto
(1) show-tr8

x r sub 18 sub y 12 sub moveto
(M) show-tr12
0 -3 rmoveto
(2) show-tr8

x r add 5 add y 12 sub moveto
(M) show-tr12
0 -3 rmoveto
(3) show-tr8

x 6 add y 5 sub a sin a cos div r mul add moveto
(M) show-tr12
0 -3 rmoveto
(4) show-tr8

x r sub 12 add y 4 add moveto
(a) show-sy12

% DORT

showpage
%%EOF
----- cut -----

mvG

Christoph Karl 
email: Christoph Karl <Christoph.Karl@wu-wien.ac.at>
Tel.: +43(1)31336/4793
Fax:  +43(1)31336/746



powered by LINUX the choice of a gnu generation
linux user group austria;
Suche
Suche
Letzte Änderung:
webmaster@luga.at
September 2010