MCVSM00_a Miscellaneousþ"Ê4È6Ð00_agClick to insert.&æÀ &çð &æØCzCzC¡C¡ ¨ ¨  ¨<¨<>  +++++++++++++++++++++++++++++++++++++++++++þ?üøÿðÿàÿðø?üøÿðÿàÿÀÒ ë 6 O š³Ìåspitzenabstand45spitzenabstzufvariausstarkstarkmittelmittelschwachschwachausaus spitzenhoehe20spitzenhoehzufvariausstarkstarkmittelmittelschwachschwachausaus anzahlspitzen4dicke50tiefe30 zufaelleaus0(*PtInPoly(pX, pY:REAL; h:HANDLE):BOOLEAN;*) PROCEDURE a00a; (*PushAttrs; PenFore(215); PenBack(5); PenPat(25); PenSize(42); PenPat(25); SetConstrain('q'); CallTool(-201); PopAttrs;*) (* Kommentar *) VAR i,ii:INTEGER; anzahl:INTEGER; zufallsGroesseAbst,zufallsGroesseHoehe:REAL; abstand:REAL; radius:REAL; text:STRING; fileName:STRING; aktXPositionZigzag1,aktYPositionZigzag1,aktXPositionZigzag2,aktYPositionZigzag2,aktXPositionUmh1,aktYPositionUmh1:REAL; aktXPositionUmh2,aktYPositionUmh2:REAL; anzahlSpitzen:INTEGER; (* 1,2,3,4,....*) spitzenHoehe,spitzenAbstand,dicke,tiefe:REAL; (*1.2,1.24,....*) laschenLaenge,spitzenAbstandStandard:REAL; xAnfang,xEnde,yAnfang,yEnde: INTEGER; spitzenAbstandw,spitzenHoeheStandard:REAL; aktZigZagLaenge:REAL; PROCEDURE ZeichneKleblasche(xAnfang:INTEGER; yAnfang:INTEGER; xEnde:INTEGER; yEnde:INTEGER); BEGIN laschenLaenge := Sqrt((xEnde-xAnfang)^2 + (yEnde-yAnfang)^2); MoveTo(xAnfang,yAnfang); Line(-5*((xEnde-xAnfang)/laschenLaenge) + 5*(-((yAnfang+yEnde)/laschenLaenge)),-5*((yEnde-yAnfang)/laschenLaenge) + 5*((xEnde-xAnfang)/laschenLaenge)); MoveTo(xAnfang,yAnfang); Line(xEnde,yEnde); END; BEGIN (*xAnfang:=100; yAnfang:=100; xEnde:=300; yEnde:=150;*) PenPat(-1); dicke:=PDICKE; spitzenHoeheStandard := PSPITZENHOEHE; spitzenAbstandStandard := PSPITZENABSTAND; tiefe := PTIEFE; IF (PANZAHLSPITZEN < 1) THEN anzahlSpitzen := 1 ELSE anzahlSpitzen := PANZAHLSPITZEN; aktXPositionZigzag1 := 0; aktYPositionZigzag1 := 0; aktXPositionZigzag2 := 0; aktYPositionZigzag2 := -tiefe; aktXPositionUmh1 := 0; aktYPositionUmh1 := 0; aktXPositionUmh2 := dicke; aktYPositionUmh2 := 0; text := 'Jonas'; abstand:= 2; anzahl:= 4; IF (PSPITZENABSTZUFVARI = 'aus') THEN zufallsGroesseAbst := 0 ELSE IF (PSPITZENABSTZUFVARI = 'stark') THEN zufallsGroesseAbst := .95 ELSE IF (PSPITZENABSTZUFVARI = 'mittel') THEN zufallsGroesseAbst := .6 ELSE IF (PSPITZENABSTZUFVARI = 'schwach') THEN zufallsGroesseAbst := .2; IF (PSPITZENHOEHZUFVARI = 'aus') THEN zufallsGroesseHoehe := 0 ELSE IF (PSPITZENHOEHZUFVARI = 'stark') THEN zufallsGroesseHoehe := 2 ELSE IF (PSPITZENHOEHZUFVARI = 'mittel') THEN zufallsGroesseHoehe := 1 ELSE IF (PSPITZENHOEHZUFVARI = 'schwach') THEN zufallsGroesseHoehe := .3; (*BeginDialog(1,1,0,900,0,600); AddButton('OK',1,1,25,60,125,80); SetTitle('Find-Replace Text'); AddField('Replace with:',5,1,16,59,113,75); EndDialog; GetDialog(1);*) Rect(0, 0, dicke, -tiefe); (*ArcByCenter(0,0,2,0,360); ZeichneKleblasche(10,10,200,50); ZeichneKleblasche(90,80,20,50); ZeichneKleblasche(50,10,100,50); *) FOR i:=1 TO anzahlSpitzen DO BEGIN IF (PZUFAELLEAUS) THEN BEGIN spitzenAbstand := spitzenAbstandStandard; spitzenHoehe := spitzenHoeheStandard; END ELSE BEGIN spitzenAbstand := spitzenAbstandStandard*(1-zufallsGroesseAbst) + Random * (1.5 * zufallsGroesseAbst) * spitzenAbstandStandard; spitzenHoehe := spitzenHoeheStandard*(1-zufallsGroesseHoehe) + zufallsGroesseHoehe * Random * (spitzenHoeheStandard*2); END; aktZigZagLaenge := Sqrt(((spitzenAbstand/2)^2)+(spitzenHoehe^2)); (*////////////////////////////////////////////////////////////////////////////// Zigzag1*) PushAttrs; PenPat(2); MoveTo(aktXPositionZigzag1,aktYPositionZigzag1); Line(spitzenHoehe,spitzenAbstand/2); MoveTo(aktXPositionZigzag1+dicke,aktYPositionZigzag1); Line(spitzenHoehe,spitzenAbstand/2); aktXPositionZigzag1 := aktXPositionZigzag1 + spitzenHoehe; aktYPositionZigzag1 := aktYPositionZigzag1 + spitzenAbstand/2; (*Line(-dicke,0); Faltlinie*) MoveTo(aktXPositionZigzag1,aktYPositionZigzag1); Line(-spitzenHoehe,spitzenAbstand/2); MoveTo(aktXPositionZigzag1+dicke,aktYPositionZigzag1); Line(-spitzenHoehe,spitzenAbstand/2); aktXPositionZigzag1 := aktXPositionZigzag1 - spitzenHoehe; aktYPositionZigzag1 := aktYPositionZigzag1 + spitzenAbstand/2; (*Line(-dicke,0); Faltlinie*) MoveTo(aktXPositionZigzag1,aktYPositionZigzag1); PopAttrs; (*////////////////////////////////////////////////////////////////////////////// Ummantelung1*) FOR ii:=1 TO 2 DO BEGIN MoveTo(aktXPositionUmh1,aktYPositionUmh1); Line(-aktZigZagLaenge,0); IF i = 1 THEN BEGIN IF ii = 1 THEN BEGIN MoveTo(aktXPositionUmh1,aktYPositionUmh1); PushAttrs; PenPat(2); Line(-aktZigZagLaenge,0); PopAttrs; END; END; (*Kleblasche*) PushAttrs; PenPat(2); MoveTo(aktXPositionUmh1,aktYPositionUmh1); IF i = 1 THEN BEGIN IF ii = 2 THEN BEGIN Line(-5,5); Line(-aktZigZagLaenge + 10,0); Line(-5,-5); END; END ELSE BEGIN Line(-5,5); Line(-aktZigZagLaenge + 10,0); Line(-5,-5); END; PopAttrs; MoveTo(aktXPositionUmh1,aktYPositionUmh1-tiefe); Line(-aktZigZagLaenge,0); IF i = 1 THEN BEGIN IF ii = 1 THEN BEGIN MoveTo(aktXPositionUmh1,aktYPositionUmh1-tiefe); PushAttrs; PenPat(2); Line(-aktZigZagLaenge,0); PopAttrs; END; END; (*Kleblasche*) PushAttrs; PenPat(2); MoveTo(aktXPositionUmh1,aktYPositionUmh1-tiefe); IF i = 1 THEN BEGIN IF ii = 2 THEN BEGIN Line(-5,-5); Line(-aktZigZagLaenge + 10,0); Line(-5,5); END; END ELSE BEGIN Line(-5,-5); Line(-aktZigZagLaenge + 10,0); Line(-5,5); END; PopAttrs; aktXPositionUmh1 := aktXPositionUmh1-aktZigZagLaenge; MoveTo(aktXPositionUmh1,aktYPositionUmh1); Line(0,-tiefe); END; (*////////////////////////////////////////////////////////////////////////////// Zigzag2*) PushAttrs; PenPat(2); MoveTo(aktXPositionZigzag2,aktYPositionZigzag2); Line(spitzenHoehe,-spitzenAbstand/2); MoveTo(aktXPositionZigzag2+dicke,aktYPositionZigzag2); Line(spitzenHoehe,-spitzenAbstand/2); aktXPositionZigzag2 := aktXPositionZigzag2 + spitzenHoehe; aktYPositionZigzag2 := aktYPositionZigzag2 - spitzenAbstand/2; (*Line(-dicke,0); Faltlinie*) MoveTo(aktXPositionZigzag2,aktYPositionZigzag2); Line(-spitzenHoehe,-spitzenAbstand/2); MoveTo(aktXPositionZigzag2+dicke,aktYPositionZigzag2); Line(-spitzenHoehe,-spitzenAbstand/2); aktXPositionZigzag2 := aktXPositionZigzag2 - spitzenHoehe; aktYPositionZigzag2 := aktYPositionZigzag2 - spitzenAbstand/2; (*Line(-dicke,0); Faltlinie*) MoveTo(aktXPositionZigzag2,aktYPositionZigzag2); PopAttrs; (*////////////////////////////////////////////////////////////////////////////// Ummantelung2*) FOR ii:=1 TO 2 DO BEGIN MoveTo(aktXPositionUmh2,aktYPositionUmh2); Line(aktZigZagLaenge,0); IF i = 1 THEN BEGIN IF ii = 1 THEN BEGIN MoveTo(aktXPositionUmh2,aktYPositionUmh2); PushAttrs; PenPat(2); Line(aktZigZagLaenge,0); PopAttrs; END; END; (*Kleblasche*) PushAttrs; PenPat(2); MoveTo(aktXPositionUmh2,aktYPositionUmh2); IF i = 1 THEN BEGIN IF ii = 2 THEN BEGIN Line(5,5); Line(aktZigZagLaenge - 10,0); Line(5,-5); END; END ELSE BEGIN Line(5,5); Line(aktZigZagLaenge - 10,0); Line(5,-5); END; PopAttrs; MoveTo(aktXPositionUmh2,aktYPositionUmh2-tiefe); Line(aktZigZagLaenge,0); (*Kleblasche*) IF i = 1 THEN BEGIN IF ii = 1 THEN BEGIN MoveTo(aktXPositionUmh2,aktYPositionUmh2-tiefe); PushAttrs; PenPat(2); Line(aktZigZagLaenge,0); PopAttrs; END; END; PushAttrs; PenPat(2); MoveTo(aktXPositionUmh2,aktYPositionUmh2-tiefe); IF i = 1 THEN BEGIN IF ii = 2 THEN BEGIN Line(5,-5); Line(aktZigZagLaenge - 10,0); Line(5,5); END; END ELSE BEGIN Line(5,-5); Line(aktZigZagLaenge - 10,0); Line(5,5); END; PopAttrs; aktXPositionUmh2 := aktXPositionUmh2+ aktZigZagLaenge; MoveTo(aktXPositionUmh2,aktYPositionUmh2); Line(0,-tiefe); END; END; PushAttrs; PenPat(2); (* RechtecksflŠche Boden: *) (*Rect(aktXPositionZigzag2, aktYPositionZigzag2, aktXPositionZigzag2 + dicke, aktYPositionZigzag2 - tiefe);*) MoveTo(aktXPositionZigzag2, aktYPositionZigzag2); LineTo(aktXPositionZigzag2, aktYPositionZigzag2 - tiefe); LineTo(aktXPositionZigzag2 + dicke, aktYPositionZigzag2 - tiefe); LineTo(aktXPositionZigzag2 + dicke, aktYPositionZigzag2); PopAttrs; MoveTo(aktXPositionZigzag1,aktYPositionZigzag1); Line(dicke,0); MoveTo(aktXPositionZigzag1,aktYPositionZigzag1); PushAttrs; PenPat(2); Line(5,5); Line(dicke-10,0); Line(5,-5); PopAttrs; MoveTo(aktXPositionZigzag2,aktYPositionZigzag2); Line(dicke,0); (*Kleblasche Ende*) MoveTo(aktXPositionUmh1,aktYPositionUmh1); PushAttrs; PenPat(2); Line(-5,-5); Line(0,-tiefe+10); Line(5,-5); MoveTo(aktXPositionUmh2,aktYPositionUmh2); Line(5,-5); Line(0,-tiefe+10); Line(-5,-5); PopAttrs; (* Message('Hello ',text); Wait(i); ClrMessage;*) (* FOR i:=0 TO anzahl DO BEGIN PenFore(200,Random*65535,0); FillBack(0,Random*65535,0); Rect(0,0,durchmesser-(i*abstand),durchmesser-(i*abstand)); END; Arc(0,0,50,50,10,40); *) END; RUN(a00a);SpitzenabstandSpitzenabstand Zufall SpitzenhšheSpitzenhšhe Zufall Anz. SpitzenDicke der WurstTiefe der Wurstalle ZufŠlle aus