'**************************************************************************** ' KAESTEN.BAS - QBasic-Programmbeispiele zum Zeichen von Rechtecken ' =========== ' ' (c) Thomas Antoni, 05.99 - 29.7.05 ' thomas@antonis.de --- www.qbasic.de '**************************************************************************** DECLARE SUB RundEck (x1%, y1%, x2%, y2%, farbe%) CLS LOCATE 12, 8 PRINT "4 K„sten zum Einbauen in QBasic-Programme (c) Thomas Antoni" LOCATE 14, 8 PRINT "Zum Anzeigen der K„sten drcke jeweils eine beliebige Taste" SLEEP CLS PRINT "" PRINT " ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ³ ³" PRINT " ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ (c) Thomas Antoni ÄÄÄÄÄÄÄÄÄÄÄÙ" PRINT SLEEP COLOR 14, 1 'Bildschirmfarben: gelbe Schrift auf blauem Hintergrund CLS PRINT PRINT PRINT PRINT PRINT " ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" PRINT " ³ ³±±" PRINT " ³ Willkommen zum Joystick-Test ³±±" PRINT " ³ ============================ ³±±" PRINT " ³ ³±±" PRINT " ³ Angezeigt wird: - X- und Y-Achse ³±±" PRINT " ³ - Schubregler ³±±" PRINT " ³ - unterer/ oberer Feuerknopf ³±±" PRINT " ³ ³±±" PRINT " ³ ³±±" PRINT " ³ ........ weiter mit beliebiger Taste ³±±" PRINT " ³ ³±±" PRINT " ³ ³±±" PRINT " ³ ³±±" PRINT " ³ (c)Thomas Antoni ³±±" PRINT " ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ±±" PRINT " ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±" PRINT SLEEP '**************************************************************************** 'Bildschirm blau einf„rben und dick weiá umrandeten Kasten mit rotem Inhalt 'erzeugen (zwischen y/x = 7/15 bis 19/65 '**************************************************************************** COLOR 1, 1 CLS 'Bildschirm blau einf„rben COLOR 15, 4 'weiá auf roten Kasten fr LOCATE 7, 15 'Namensdialog malen PRINT "Û"; STRING$(48, "ß"); "Û" FOR y% = 8 TO 18 LOCATE y%, 15 PRINT "Û"; SPACE$(48); "Û" NEXT y% LOCATE , 15 PRINT "Û"; STRING$(48, "Ü"); "Û" SLEEP '************************************************************************** ' Grafisch gezeichnetes Rundeck fr 640*480-VGA-Screen 12 ' =========================================================== ' mit SUBroutine RundEck aus Lit. {11/185} ' ' Zun„chst weden in alle 4 Ecken Viertelkreisb”gen gesetzt. Anschlieáend ' werden diese durch Geraden verbunden. Der ganze Bildschirm wird mit ' derartigen Rundecken im Abstand von je 5 Pixeln vollgemalt. Die Randst„rke ' betr„gt jeweils 1 Pixel, die Randfarbe wird per Zufall bestimmt. ' ' (c) T.Antoni, 14.08.99 - 25.08.99 '************************************************************************** CONST xmax% = 630 CONST ymax% = 460 CONST diff% = 5 SCREEN 12 RANDOMIZE TIMER FOR y% = 1 TO ymax% \ 2 STEP diff% x% = INT(y% * (xmax% / ymax%)) xeck% = xmax% - x% yeck% = ymax% - y% farbe% = INT(RND * 15) + 1 CALL RundEck((x%), (y%), (xeck%), (yeck%), (farbe%)) 'eingeklammerte Parameter ==> call by value NEXT y% SLEEP SCREEN 0 COLOR 15, 0 'Wieder Weiá/Schwarz-Bildschirm setzen ... CLS '...und aktivieren END SUB RundEck (x1%, y1%, x2%, y2%, farbe%) '***************************************************************************** ' Subroutine RundEck zum Zeichnen eines abgerundeten Vierecks auf Grafikscreen ' ============================================================================ ' šbergabeparameter: ' - x1%, y1% = Koordinaten der linken oberen Ecke ' - x2%, y2% = Koordinaten der rechten unteren Ecke ' - farbe% = Randfarbe ' ' (c) Thomas Antoni, 24.08.99 - 25.08.99 '***************************************************************************** '------- Rundungsfaktor/ Radius ------ IF y2% - y1% > 10 THEN q% = 10: ELSE q% = 2 '------- Eckwerte fr Kreisb”gen ----- DIM Eck(4) FOR i% = 0 TO 3 Eck(i%) = i% * 3.14 / 2 NEXT i% '------- Rundeck/ Linien ------------- CIRCLE (x1% + q%, y1% + q%), q%, farbe%, Eck(1), Eck(2) LINE (x1% + q%, y1%)-(x2% - q%, y1%), farbe% CIRCLE (x2% - q%, y1% + q%), q%, farbe%, Eck(0), Eck(1) LINE (x2%, y1% + q%)-(x2%, y2% - q%), farbe% CIRCLE (x2% - q%, y2% - q%), q%, farbe%, Eck(3), Eck(0) LINE (x2% - q%, y2%)-(x1% + q%, y2%), farbe% CIRCLE (x1% + q%, y2% - q%), q%, farbe%, Eck(2), Eck(3) LINE (x1%, y2% - q%)-(x1%, y1% + q%), farbe% END SUB