Работа с графикой в BASIC. | |
Обычно в DOS программах вначале используется текстовый режим. В текстовом режиме на экран выводятся символы. 80 по горизонтали и 25 строк по вертикали. Для использования графического режима его нужно включить функцией SCREEN K K - номер режима. Возможны номера 1, 2, 7-13 | Точки. В графическом режиме вывод на экран производится точками. Отсчет координаты точки начинается с левого верхнего угла. PSET (x,y), N - рисует точку на экране с координатами X,Y; цветом N. REM ТОЧКИ В ЛИНИЮ SCREEN 7 FOR I = 1 TO 20 PSET (I * 10, 100), I NEXT |
Линии LINE [x1,y1],(x2,y2) n, B[BF] - рисует линию, если x1 и y1 пропущены то рисует из текущей, иначе из указанной координатами. N - цвет. B - рисует прямоугольник. BF - закрашеный прямоугольник. SCREEN 7 FOR X = 1 TO 200 STEP 10 LINE (150, 150)-(X, 0) NEXT SCREEN 7 FOR X = 15 TO 1 STEP -1 LINE (0, 0)-(X * 10, X * 10), X, BF DO: LOOP WHILE INKEY$ = "" NEXT | Окружности. CIRCLE (x,y),R,n - Окружность с координатами x, y, радиусом - R, цветом - n. SCREEN 7 FOR R = 1 TO 100 CIRCLE (100, 100), R, RND * 15 NEXT R Заливка PAINT (x,y),[цвет области, I, цвет границы] - Заливка цветом замкнутого пространства. Простая программа для выявления битых пикселей на LCD экране SCREEN 7 REM Заполнение экрана цветом FOR I = 1 TO 15 PAINT (100, 100), I DO: LOOP UNTIL INKEY$ <> "" NEXT Выбор цвета COLOR N, M - Устанавливает цвета в изображении. Первая цифра - цвет. Вторая - выбираемая палитра. |
REM Разноцветная ломаная SCREEN 7 DO X = RND * 250 Y = RND * 180 LINE -(X, Y), RND * 15 T = TIMER + 1 A: IF T > TIMER THEN GOTO A LOOP WHILE INKEY$ = "" | |
REM Цветные окружности SCREEN 7 DO X = RND * 300 Y = RND * 180 C = RND * 15 CIRCLE (X, Y), RND * 20, C T = TIMER A: IF T = TIMER THEN GOTO A LOOP WHILE INKEY$ = "" | |
REM Разноцветные окружности SCREEN 7 DO CIRCLE (160, 100), 100 * RND, RND * 15 T = TIMER A: IF T = TIMER THEN GOTO A LOOP WHILE INKEY$ = "" | |
REM Цветные круги до нажатия клавиши SCREEN 7 RANDOMIZE (TIMER): K=0 DO X = RND * 300:Y = RND * 180:C = RND * 15 CIRCLE (X, Y), RND * 20, C PAINT (X, Y), C:T = TIMER A: IF T = TIMER THEN GOTO A K = K + 1: IF K > 5 THEN CLS : K = 0 LOOP WHILE INKEY$ = "" | |
REM Пучки линий до нажатия клавиши SCREEN 7 DO X1 = RND * 300: Y1 = RND * 200 FOR X = -3.14 TO 0 STEP .1 Y = SIN(X) LINE (X1, Y1)-(X * RND * 50 + RND * 200, -Y * RND * 50 + RND * 150), RND * 15 NEXT X T = TIMER + 1 A: IF T > TIMER THEN GOTO A CLS LOOP WHILE INKEY$ = "" | |
REM Разноцветные закрашенные прямоугольники до нажатия клавиши SCREEN 7 RANDOMIZE (TIMER) DO X1 = RND * 250: Y1 = RND * 180 X2 = RND * 250: Y2 = RND * 180 LINE (X1, Y1)-(X2, Y2), RND * 15, BF T = TIMER + 1 A: IF T > TIMER THEN GOTO A LOOP WHILE INKEY$ = "" | |
REM Разноцветные конусы под разными углами до нажатия клавиши SCREEN 7 DO X = RND * 280: Y = RND * 200: Z = RND * 100 IF Z > 50 THEN ZX = 1 ELSE ZX = -1 Z = RND * 100 IF Z > 50 THEN ZY = 1 ELSE ZY = -1 FOR I = 1 TO 50 CIRCLE (X + I * ZX, Y + I * ZY), I / 2, RND * 15 NEXT T = TIMER + 1 A: IF T > TIMER THEN GOTO A LOOP WHILE INKEY$ <> "" | |
REM Разноцветные витражи SCREEN 7: RANDOMIZE TIMER DIM X(400), Y(400) N = 0: COLOR 4, 1 DO IF N <> 0 GOTO 200 A = RND * 12: B = RND * 12 FOR I = 1 TO 360 Z = 6.2832 * I / 360 X(I) = 160 + 160 * SIN(5 * Z) * COS(A * Z) Y(I) = 100 + 150 * COS(5 * Z) * SIN(B * Z) LINE (X(I - 1), Y(I - 1))-(X(I), Y(I)), 4 NEXT 200 : C = INT(15 * RND) IF C = 4 THEN GOTO 200 T = TIMER 206 : IF T = TIMER THEN GOTO 206 PAINT (RND * 300, RND * 200), C, 4 N = N + 1: IF N > 150 THEN CLS : N = 0 LOOP WHILE INKEY$ = "" |
Архив можно взять здесь: BAS-GRAPH.zip