' Programm: LINEDEMO.BAS ' Funktion: Demo des LINE-Befehls ' Autor : Martien Teich DECLARE SUB MenuAufbauen () DECLARE SUB LineDemo1 () DECLARE SUB LineDemo2 () DECLARE SUB LineDemo3 () DECLARE SUB LineDemo4 () DECLARE SUB LineDemo5 () TYPE Koord 'Koordinaten fr LineDemo5 xP AS INTEGER: yP AS INTEGER END TYPE SCREEN 12 'VGA (640 x 480 x 16) RANDOMIZE TIMER MenuAufbauen DO PBKey$ = INKEY$ IF PBKey$ <> "" THEN SELECT CASE PBKey$ CASE "1": LineDemo1 CASE "2": LineDemo2 CASE "3": LineDemo3 CASE "4": LineDemo4 CASE "5" LineDemo5 END SELECT CLS : MenuAufbauen END IF LOOP UNTIL PBKey$ = "0" SUB LineDemo1 Runter = 1: Rauf = 2: CLS x = 639: y = 0: r = Runter DO IF r = Runter THEN y = y + 1 IF y > 479 THEN y = 479: x = x - 1 END IF LINE (0, 0)-(x, y), INT(RND * 16) IF x = 0 THEN r = Rauf ELSE x = x + 1 IF x > 639 THEN x = 639: y = y - 1 END IF LINE (0, 0)-(x, y), 2 IF y = 0 THEN r = Runter END IF LOOP UNTIL INKEY$ <> "" END SUB SUB LineDemo2 CLS DO LINE (INT(RND * 640), INT(RND * 480))-(INT(RND * 640), INT(RND * 480)), INT(RND * 16) LOOP UNTIL INKEY$ <> "" END SUB SUB LineDemo3 CLS PRINT "Start-Koordianten eingeben:" INPUT "x-Wert (0-639): ", x INPUT "y-Wert (0-479): ", y CLS DO LINE (x, y)-(INT(RND * 640), INT(RND * 480)), INT(RND * 16) LOOP UNTIL INKEY$ <> "" END SUB SUB LineDemo4 CLS x = 320: y = 240: xe = 639: ye = 0 DO LINE (x, y)-(xe, ye), 10' INT(RND * 16) LINE (x, y)-(xe, ye), 0 ye = ye + 1 IF ye > 479 THEN ye = 479: xe = xe - 1 ELSEIF ye <= 0 THEN ye = -1: xe = xe + 1 END IF IF xe <= 0 THEN xe = 0: ye = ye - 2 ELSEIF xe > 639 THEN xe = 639: ye = 0 END IF LOOP UNTIL INKEY$ <> "" END SUB SUB LineDemo5 SHARED Punkte CLS INPUT "Wieviel Ecken? ", Ecken DIM Punkte(0 TO Ecken - 1) AS Koord CLS xM = 320: yM = 240: Radius = 239 Winkel = 360 / Ecken FOR i = 0 TO Ecken - 1 r = Winkel * i * 3.14159265# / 180 Punkte(i).xP = xM + CINT(COS(r) * Radius) Punkte(i).yP = yM - CINT(SIN(r) * Radius) NEXT CIRCLE (xM, yM), Radius FOR i = 0 TO Ecken - 1 FOR j = i TO Ecken - 1 LINE (Punkte(i).xP, Punkte(i).yP)-(Punkte(j).xP, Punkte(j).yP) NEXT NEXT DO LOOP UNTIL INKEY$ <> "" END SUB SUB MenuAufbauen PRINT "Bite w„hlen:" PRINT " 1. Teppiche ber Teppiche" PRINT " 2. Nadeln wohin man sieht" PRINT " 3. Linien streuen" PRINT " 4. BASIC'sche Radarstrahl" PRINT " 5. Kreise und Linien": PRINT PRINT " 0: Ende": PRINT PRINT "Ihre Wahl?" END SUB