PROCEDURE QuaderZeichnen;


VAR

{fixe variablen}


PageWidth : REAL; {seitenbreite}

PageHeight : REAL; {seitenhöhe}

PageFoldY : REAL; {faltkante}


t : REAL; {faktor für die tiefe des quaders}


{userdefinierte variablen}


h : REAL; {position PerspPunkt; begrenzung 30 bis 80mm}

xL  : REAL; {position PerspPunkt; begrenzung 50mm bis PageWidth-50}

StripAnz :  INTEGER; {stripanzahl pro seite = auflösung; begrenzung so, dass StripWidth >= 2mm}


{folgevariablen}


xR : REAL; {zeichnen von rechter seite}


StripWidthL : REAL; {streifenbreite linke seite}

StripWidthR : REAL; {streifenbreite rechte seite}


zLi : REAL; {höhe des i-ten streifens, linke seite}

VerhL : REAL;

zRk : REAL; {höhe des k-ten streifens, rechte seite}

VerhR : REAL;

{countervariablen}

k : INTEGER; {strips rechte seite zeichtnen}

i : INTEGER; {strips linke seite zeichnen}







BEGIN


{variablenwerte festlegen}


{fixe variablen}


PageWidth := 210;

PageHeight := 297;

PageFoldY := PageHeight/2;


t := 0.5;


{userdefinierte variablen mit begrenzung}


h := PHOEHE;

IF (h<-100) THEN BEGIN

h := -100; 

END;

IF (h>100) THEN BEGIN

h := 100; 

END;

xL := PPOSITION;

IF (xL<50) THEN BEGIN

xL := 50; 

END;

IF (xL>PageWidth-50) THEN BEGIN

xL := PageWidth-50; 

END;


StripAnz := PAUFLOESUNG;

IF (StripAnz<5) THEN BEGIN

StripAnz := 5; 

END;

IF (StripAnz>15) THEN BEGIN

StripAnz := 15; 

END;


{folgevariablen}


xR := PageWidth-xL;


StripWidthL := (2*xL/3)/StripAnz;

StripWidthR := (2*xR/3)/StripAnz;


zLi := xL/3-StripWidthL/2; {"+i*StripWidthL" in for-schleife}

VerhL := h/xL;

zRk := xR/3-StripWidthR/2; {"+k*StripWidthR" in for-schleife}

VerhR := h/xR;


{din a4 blatt zeichnen}


{penFore(0,0,65535);

moveto(0,0);

lineto(PageWidth,0);

lineto(PageWidth,PageHeight);

lineto(0,PageHeight);

lineto(0,0);}


{faltlinie zeichnen}


penFore(65535,0,0); {Falten}

moveto(0,PageFoldY);

lineto(xL/3-StripWidthL/2,PageFoldY);

moveto(PageWidth,PageFoldY);

lineto(PageWidth-xR/3+StripWidthR/2,PageFoldY);



{strips linke seite zeichnen}


FOR i:=0 TO StripAnz-1 DO BEGIN

penFore(0,0,65535); {Schneiden}

moveto(zLi,PageFoldY-zLi*VerhL*t);

lineto(zLi,PageFoldY+zLi*VerhL*(1+t));

penFore(65535,0,0); {Falten}

lineto(zLi+StripWidthL,pageFoldY+zLi*VerhL*(1+t));

moveto(zLi,PageFoldY+zLi*VerhL);

lineto(zLi+StripWidthL,PageFoldY+zLi*VerhL);

moveto(zLi,PageFoldY-zLi*VerhL*t);

lineto(zLi+StripWidthL,PageFoldY-zLi*VerhL*t);


zLi := zLi+StripWidthL;

END;


{strips rechte seite zeichnen}


FOR k:=0 TO StripAnz-1 DO BEGIN

penFore(0,0,65535); {Schneiden}

moveto(PageWidth-zRk,PageFoldY-zRk*VerhR*t);

lineto(PageWidth-zRk,PageFoldY+zRk*VerhR*(1+t));


penFore(65535,0,0); {Falten}

lineto(PageWidth-zRk-StripWidthR,PageFoldY+zRk*VerhR*(1+t));

moveto(PageWidth-zRk,PageFoldY+zRk*VerhR);

lineto(PageWidth-zRk-StripWidthR,PageFoldY+zRk*VerhR);

moveto(PageWidth-zRk,PageFoldY-zRk*VerhR*t);

lineto(PageWidth-zRk-StripWidthR,PageFoldY-zRk*VerhR*t);


zRk := zRk+StripWidthR;


END;


{mittlerer strip zeichnen}



penFore(0,0,65535); {Schneiden}

moveto(zLi,PageFoldY-zLi*VerhL*t);

lineto(zLi,PageFoldY+zLi*VerhL*(1+t));


moveto(PageWidth-zRk,PageFoldY-zRk*VerhR*t);

lineto(PageWidth-zRk,PageFoldY+zRk*VerhR*(1+t));


penFore(65535,0,0); {Falten}

moveto(zLi,PageFoldY+zLi*VerhL*(1+t));

lineto(PageWidth-zRk,PageFoldY+zRk*VerhR*(1+t));

moveto(zLi,PageFoldY+zLi*VerhL);

lineto(PageWidth-zRk,PageFoldY+zRk*VerhR);

moveto(zLi,PageFoldY-zLi*VerhL*t);

lineto(PageWidth-zRk,PageFoldY-zRk*VerhR*t);


END;


RUN(QuaderZeichnen);

This website has been archived and is no longer maintained.