MCVSM Viertelkreise VectorScripts ÏÏ ViertelkreisegZIn diesem Bereich bestimmen Sie, unter welchen Bedingungen das Objekt neu gezeichnet wird. w:w:D  ùùùùùùùùùùùùùùùùùùùùùùìììùùìììùùìììùùùùùùùùùùùùùùùùùùùùùùü@@@@C„C„C„@@@@üü@@@@C„C„C„@@@@ü¶Hšhe4 PROCEDURE faltkarte; CONST pageWidth=210; pageHeight=297; pageFoldY=148.5; randabstand=30; width= 6; VAR objectX1,objectX2,objectY1,objectY2,objectY3:REAL; depth,height: REAL; nVolumes: INTEGER; i:INTEGER; makeRandomHeight:BOOLEAN; BEGIN {*werte in variablen speichern*} nVolumes:=14; makeRandomHeight:=true; {*din a4 blatt zeichnen*} penFore(0,0,65535); moveto(0,0); lineto(pageWidth,0); lineto(pageWidth,pageHeight); lineto(0,pageHeight); lineto(0,0); {*zum ersten papierfaltpunkt bewegen*} moveto(0,pageFoldY); IF (makerandomheight=true) THEN BEGIN height:=13+Random*35; END ELSE BEGIN height:=44; END; {*in dieser Schleife werden die Volumes gezeichnet*} FOR i:=0 TO nVolumes-1 DO BEGIN {*links und rechts des Volumes berechnen*} objectX1:=i*width+randabstand; objectX2:=objectX1+width; {*Tiefe des Kšrpers berechnen, steigt von volume zu volume*} depth:=6+i*(i/2); {*Wenn gewŸnscht, dann hšhe zufŠllig berechnen*} {*yWerte fŸr die Linien berechnen*} objectY1:=pageFoldY - depth; objectY3:=pageFoldY + height; objectY2:=objectY3-depth; {*papier faltkanten zeichnen*} penFore(65535,0,0); lineTo(objectX1,pageFoldY); {*schnittkanten zeichnen*} penFore(0,0,65535); moveto(objectX1,objectY1); lineto(objectX1,objectY2); moveto(objectX2,objectY1); lineto(objectX2,objectY2); IF (i=0) THEN BEGIN moveto(objectX1,objectY1); lineto(objectX1,objectY3); END; IF (i=nVolumes-1) THEN BEGIN moveto(objectX2,objectY1); lineto(objectX2,pageFoldY); END; {*volumen faltkanten zeichnen*} penFore(65535,0,0); moveto(objectX1,objectY1); lineto(objectX2,objectY1); moveto(objectX1,objectY2); lineto(objectX2,objectY2); {*oberster faltstrich des volumens*} IF (i=0) THEN BEGIN moveto(objectX1,objectY3); lineto(96,objectY3); END; {*zum nŠchsten papierfaltpunkt bewegen*} moveto(objectX2,pageFoldY); END; BEGIN {*in dieser Schleife werden die Volumes gezeichnet*} FOR i:=0 TO nVolumes-1 DO BEGIN {*links und rechts des Volumes berechnen*} objectX1:=pageWidth-30-(nVolumes-i)*6; objectX2:=objectX1+width; {*Tiefe des Kšrpers berechnen, steigt von volume zu volume*} depth:=height; {*Wenn gewŸnscht, dann hšhe zufŠllig berechnen*} {*yWerte fŸr die Linien berechnen*} objectY1:=pageFoldY - height; objectY3:=pageFoldY + 84-i*(i/2)+10; objectY2:=pageFoldY + 84-i*(i/2)-height+10; {*objectY3:=pageFoldY + 6+(nVolumes+(14-i)-1)*(i/2)+60; objectY2:=pageFoldY + 6+(nVolumes+(14-i)-1)*(i/2)-height+60;*} {*papier faltkanten zeichnen*} penFore(65535,0,0); lineTo(objectX1,pageFoldY); {*schnittkanten zeichnen*} penFore(0,0,65535); moveto(objectX1,objectY2); lineto(objectX1,objectY3); moveto(objectX2,objectY2); lineto(objectX2,objectY3); IF (i=0) THEN BEGIN moveto(objectX1,pageFoldY); lineto(objectX1,objectY3); END; IF (i=nVolumes-1) THEN BEGIN moveto(objectX2,objectY1); lineto(objectX2,objectY3); END; {*volumen faltkanten zeichnen*} penFore(65535,0,0); moveto(objectX1,objectY3); lineto(objectX2,objectY3); moveto(objectX1,objectY2); lineto(objectX2,objectY2); {*unterster faltstrich des volumens*} IF (i=nVolumes-1) THEN BEGIN moveto(objectX2,objectY1); lineto(114,objectY1); END; {*zum nŠchsten papierfaltpunkt bewegen*} moveto(objectX2,pageFoldY); END; {*letzten papierfaltpunkt zeichen*} lineTo(pageWidth,pageFoldY); END; END; RUN(faltkarte);Hšhe y- Ausrichtung