|##########| |#MAGIC #|CLABLMJO |#PROJECT #|"" |#PATHS #|"StdProject" |#FLAGS #|xx---x--x-----x----------------- |#USERSW #|-------------------------------- |#USERMASK#|-------------------------------- |#SWITCHES#|xx---xxxxx------ |##########| DEFINITION MODULE GfxPseudo3D; FROM GfxScreen IMPORT Screen; (*----------------------------------------------------------------------------* * Color3D : Farbstruktur für Pseudo3d-Darstellung * * .topLeft : Farbe für linke und obere Kante * * .bottomRight : Farbe für untere und rechte Kante * * .normal : Farbe der Oberfläche * *----------------------------------------------------------------------------*) TYPE Color3D = RECORD topLeft, bottomRight, normal : SHORTCARD; END; (*----------------------------------------------------------------------------* * AUFGABE : Schreibt ein Zeichen in 3d * * PARAMETER : s <= Screen, auf die gezeichnet wird * * col <= Farbstruktur des Objekts * * x,y <= Koordinaten * * c <= Zeichen, das gezeichnet wird * * BEMERKUNGEN : -- * *----------------------------------------------------------------------------*) PROCEDURE Write3D(s : Screen;col : Color3D;x,y : INTEGER;c : CHAR); (*----------------------------------------------------------------------------* * AUFGABE : Schreibt einen String in 3d * * PARAMETER : s <= Screen, auf die gezeichnet wird * * col <= Farbstruktur des Objekts * * x,y <= Koordinaten * * str <= String, der geschrieben wird * * BEMERKUNGEN : Ruft für jedes Zeichen Write3D auf * *----------------------------------------------------------------------------*) PROCEDURE Write3DString(s : Screen;col : Color3D;x,y : INTEGER;REF str : STRING); (*----------------------------------------------------------------------------* * AUFGABE : Schreibt einen String in 3d * * PARAMETER : s <= Screen, auf die gezeichnet wird * * col <= Farbstruktur des Objekts * * x,y <= Koordinaten * * str <= String, der geschrieben wird * * BEMERKUNGEN : -- * *----------------------------------------------------------------------------*) PROCEDURE WriteQ3DString(s : Screen;col : Color3D;x,y : INTEGER;REF str : STRING); (*----------------------------------------------------------------------------* * AUFGABE : Zeichnet ein Rechteck in 3d * * PARAMETER : s <= Screen, auf die gezeichnet wird * * col <= Farbstruktur des Objekts * * x1,y1 <= obere, linke Ecke * * x2,y2 <= untere, rechte Ecke * * BEMERKUNGEN : -- * *----------------------------------------------------------------------------*) PROCEDURE Box3D(s : Screen;col : Color3D;x1,y1,x2,y2 : INTEGER); (*----------------------------------------------------------------------------* * AUFGABE : Zeichnet einen Kreis in 3d * * PARAMETER : s <= Screen, auf die gezeichnet wird * * col <= Farbstruktur des Objekts * * x,y <= Koordinaten des Mittelpunkts * * r <= Radius des Kreises * * BEMERKUNGEN : -- * *----------------------------------------------------------------------------*) PROCEDURE Circle3D(s : Screen;col : Color3D;x,y,r : INTEGER); GROUP All = Color3D,Write3D,Screen,Write3DString,WriteQ3DString,Box3D,Circle3D; END GfxPseudo3D.