PROCEDURE faltkarte; VAR pageWidth: REAL; pageHeight: REAL; pageFoldY: REAL; width: REAL; depth: REAL; height: REAL; xWert: REAL; yWert: REAL; zWert: REAL; xWert2: REAL; yWert2: REAL; zWert2: REAL; xWert3: REAL; x: REAL; xFunktion: REAL; Breite : REAL; Balkenzahl : REAL; b, c, d, f, g, h, og, k, l, m, n, o, q, r : REAL; a, e : REAL; ev : REAL; ez : BOOLEAN; rot, grun, blau : LONGINT; BEGIN {*Blatt definieren*} pageWidth:=210; pageHeight:=297; pageFoldY:= pageHeight/2; {*Variablen definieren*} Balkenzahl:= Pbalken; a:= Pa; b:= Pb; c:= Pc; d:= Pd; e:= Pe; f:= Pf; g:= Pg; r:= Pr; h:= Ph; og:= Pog; k:= Pk; l:= Pl; m:= Pm; n:= Pn; o:= Po; q:= Pq; ev:= Pebenenver; ez:= Pebenezwei; {*Stift einstellen*} penPat(2); penFore(0,0,65535); {*Blatt zeichnen*} moveto(0,0); lineto(pageWidth,0); lineto(pageWidth,pageHeight); lineto(0,pageHeight); lineto(0,0); {*Balkenbreite berechnen*} Breite:= (pageWidth - 20)/(2*Balkenzahl-1); {*feste Variablenwerte setzen*} x:= 10; xFunktion:= 1; {*Schlaufenbeginn*} WHILE (xFunktion <= Balkenzahl) DO BEGIN {*Variablen berechnen fŸr Funktion y= a * ( ( (x- ((Balkenzahl + 1)/2)) * b) ^c) +d + e * sin ( (x + f) * g) *} xWert:= x; yWert:= a * ( ( (xFunktion-r)*b) ^c) + d + e * sin( (xFunktion + f) * g); zWert:= h * ( ( (xFunktion-q)*og) ^k) + l + m * sin( (xFunktion + n) * o); {*zWert:= 10+(xWert/4);*} {*Stift einstellen*} penPat(2); penFore(0,0,65535); {*Schnittkanten zeichnen der Funktion, in AbhŠngigkeit der Anzahl Balken mit konstantem Blattrand*} moveto(xWert,(pageHeight/2)-zWert); lineto(xWert,(pageHeight/2)+yWert); moveto(xWert+Breite,(pageHeight/2)-zWert); lineto(xWert+Breite,(pageHeight/2)+yWert); {*Stift einstellen*} penFore(65535,0,0); penPat(-2); {*faltkanten zeichnen*} moveto(xWert,pageFoldY-zWert); lineto(xWert+Breite,pageFoldY-zWert); moveto(xWert,pageFoldY-zWert+yWert); lineto(xWert+Breite,pageFoldY-zWert+yWert); moveto(xWert,pageFoldY+yWert); lineto(xWert+Breite,pageFoldY+yWert); {*farbige Rechteckeunten*} {*rot:= (53535+Random*3000); grun:= (55000+Random*10000); blau:= (2906+Random*1000); FillBack((Random*65535),(Random*65535),(Random*65535)); rect(xWert,pageFoldY-zWert,xWert+Breite,pageFoldY-zWert+yWert);*} {*farbige Rechteckeoben*} {*rot:= (53535+Random*3000); grun:= (55000+Random*10000); blau:= (2906+Random*1000); FillBack((Random*65535),(Random*65535),(Random*65535)); rect(xWert,pageFoldY-zWert+yWert,xWert+Breite,pageFoldY+yWert);*} IF (ez = true) THEN BEGIN {*Variablen berechnen für 2.Ebene*} yWert2:= a * ( ( (xFunktion+ev-r)*b) ^c) + d + e * sin( (xFunktion+ev + f) * g); zWert2:= h * ( ( (xFunktion+ev-q)*og) ^k) + l + m * sin( (xFunktion+ev + n) * o); IF (xWert <= 200 - 2*breite) THEN BEGIN {*Stift einstellen*} penPat(2); penFore(0,0,65535); {*Schnittkanten zeichnen der 2.Ebene*} moveto(xWert+Breite,(pageHeight/2)-zWert2); lineto(xWert+Breite,(pageHeight/2)+yWert2); moveto(xWert+2*Breite,(pageHeight/2)-zWert2); lineto(xWert+2*Breite,(pageHeight/2)+yWert2); {*Stift einstellen*} penFore(65535,0,0); penPat(-2); {*faltkanten zeichnen*} moveto(xWert+Breite,pageFoldY-zWert2); lineto(xWert+2*Breite,pageFoldY-zWert2); moveto(xWert+Breite,pageFoldY-zWert2+yWert2); lineto(xWert+2*Breite,pageFoldY-zWert2+yWert2); moveto(xWert+Breite,pageFoldY+yWert2); lineto(xWert+2*Breite,pageFoldY+yWert2); END; END ELSE BEGIN {*Blattfaltkanten zwischen den Balken zeichnen*} moveto(xWert+ Breite,pageFoldY); lineto(xWert+2*Breite,pageFoldY); END; {*Stift einstellen*} penPat(2); {*Werterhšhung nach Schlaufendurchgang*} x:= xWert+2*Breite; xFunktion:= xFunktion + 1; {*green:= green+2112;*} END; {*Randfaltkante zeichnen*} moveto(0,pageFoldY); lineto(10,pageFoldY); moveto(pageWidth-10,pageFoldY); lineto(pageWidth,pageFoldY); END; RUN(faltkarte);