MCVSMStripsZeichnen VectorScripts Xa$StripsZeichnengZIn diesem Bereich bestimmen Sie, unter welchen Bedingungen das Objekt neu gezeichnet wird. ÜÜD  ùùùùùùùùùùùùùùùùùùùùùùìììùùìììùùìììùùùùùùùùùùùùùùùùùùùùùùü@@@@C„C„C„@@@@üü@@@@C„C„C„@@@@ü¾ × ðHOEHE80POSITION100 AUFLOESUNG10PROCEDURE 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);HšhePosition MittelstripStripanz. pro Seite