rus | ua | other
Home
Random lecture
|
Занятие 10. Графический режим работы
Date: 2015-10-07; view: 424.
Ну и теперь, наверное, самое интересное. Будем рисовать. Кто же не любит это занятие?!
Программы могут выводит данные на экран в текстовом и графическом режиме работы. Для перехода в графический режим работы служит оператор:
SCREEN <mode>
<mode> - целочисленная константа, указывающая режим работы для данного экрана и адаптера.
Пример:
SCREEN 1 SCREEN 2 ... SCREEN 11 ...
Для рисования можно использовать следующие операторы:
CLS
| Очистка экрана
| PSET(X,Y),C
| Изобразить точку. X,Y - координаты точки, С -цвет.
| PSET STEP(X,Y),C
| Изобразить точку. X,Y - смешение от данной точки, С - цвет.
| LINE(X1,Y1)-(X2,Y2),C
| Прямая линия.X1,Y2 и X2,Y2- координаты концов линии, С - цвет.
| LINE -(X2,Y2),C
| Прямая линия. От текущего положения курсора до X2,Y2- координаты конца линии, С - цвет.
| LINE(X1,Y1)-(X2,Y2),C,B
| Прямоугольник. X1,Y2 и X2,Y2- координаты концов диагонали, С - цвет.
| LINE(X1,Y1)-(X2,Y2),C,BR
| Закрашенный прямоугольник. X1,Y2 и X2,Y2- координаты концов диагонали, С - цвет.
| CIRCLE(X,Y),R,C
| Окружность. X,Y - координаты центра, С -цвет.
| CIRCLE STEP(X,Y),R,C
| Окружность. X,Y - смешение от данной точки, С -цвет.
| CIRCLE(X,Y),R,C,A1,A2
| Дуга окружности. X,Y - координаты центра, С -цвет, А1,А2 - угловые меры начальной и конечной точки дуги.
| CIRCLE(X,Y),R,C,,,K CIRCLE(X,Y),R,C,А1,А2,K
| Элипс. К - коэффициент сжатия.
| PAINT(X,Y),C1,C2
| Закрасить область. С1 - цвет закраски, С2 - цвет границы.
| LOCATE T1,T2
| Установка курсора в данную позицию. Т1, Т2 - номер строки и столбца.
| PRINT
| Оператор вывода текста
| Пример: использования LINE
REM использование LINE SCREEN 12 LINE (10, 10)-(200, 10) LINE (10, 20)-(200, 40), 2, B LINE (10, 50)-(200, 70), 2, BF END
Результат работы программы:
Пример: использование CIRCLE
REM ОКРУЖНОСТЬ, ДУГА, ЭЛЛИПС CONST PI = 3.141593 SCREEN 2 REM ОКРУЖНОСТЬ CIRCLE (350, 115), 30 REM ДУГА ОКРУЖНОСТИ CIRCLE (320, 100), 200, , -PI, -PI / 2 REM ОКРУЖНОСТЬ CIRCLE STEP(-100, -42), 100 REM ЭЛЛИПС CIRCLE STEP(0, 0), 100, , , , 5 / 25 REM ВЫВЕСТИ НАДПИСЬ В СТРОКЕ 25 И СТОЛБЦЕ 1 LOCATE 25, 1: PRINT "Press any key to end."; REM ЖДЕМ НАЖАТИЯ ЛЮБОЙ КЛАВИШИ DO LOOP WHILE INKEY$ = ""
Результат работы программы:
Пример: построение окружности
REM окружность CLS INPUT "Введите координаты центра x,y: ", x,y INPUT "Введите радиус окружности R: ", r SCREEN 1 CIRCLE (x, y), r END
Сейчас на улице зима, а значит и ... Пример: программа "Снеговик"
REM Снеговик SCREEN 12 x = 320 y = 240 r = 50 c = 3 c1 = 8 c2 = 5 c3 = 6
REM Снег FOR i = 1 TO 300 PSET (RND * 640, RND * 480), 1 NEXT
REM Сугроб FOR i = 1 TO 20 LINE (0 + 2 * i, y + 3 * r + 61 - i)-(640 - 2 * i, y + 3 * r + 61 - i), 1 NEXT
REM Тело снеговика CIRCLE (x, y - 80), r - 20, c CIRCLE (x, y), r, c CIRCLE (x, y + 120), r + 20, c CIRCLE (x - 52, y - 30), 10, c CIRCLE (x + 52, y - 30), 10, c
PAINT (x, y - 80), c, c PAINT (x, y), c, c PAINT (x, y + 120), c, c PAINT (x - 52, y - 30), c, c PAINT (x + 52, y - 30), c, c
REM Оформление лица CIRCLE (x - 15, y - 90), 2, 1 PAINT (x - 15, y - 90), 1, 1 CIRCLE (x + 15, y - 90), 2, 1 PAINT (x + 15, y - 90), 1, 1 CIRCLE (x, y - 80), 10, 4, , , .5 PAINT (x, y - 80), 4, 4 CIRCLE (x, y - 75), 20, 4, 4, 6, 0.5
REM Метла LINE (x - 50, y - 100)-(x - 54, y + 100), c1, BF FOR i = 1 TO 20 LINE (x - 53, y - 100)-(x - 53 - 40 * RND + 20, y - 100 - 40 * RND), c1 NEXT
REM Ведро LINE (x - 30, y - r - 2 * (r - 20) + 10)-(x + 30, y - r - 2 * (r - 20) + 10), c2 LINE (x - 15, y - r - 2 * (r - 20) - 30)-(x + 15, y - r - 2 * (r - 20) - 30), c2 LINE (x - 30, y - r - 2 * (r - 20) + 10)-(x - 15, y - r - 2 * (r - 20) - 30), c2 LINE (x + 15, y - r - 2 * (r - 20) - 30)-(x + 30, y - r - 2 * (r - 20) + 10), c2 PAINT (x, y - r - 2 * (r - 20)), c2, c2
REM Пуговицы FOR i = 1 TO 5 CIRCLE (x, y - r + 30 * i), 3, c3 PAINT (x, y - r + 30 * i), c4, c3 NEXT
END
Результат работы программы:
Пример: построение графика функции.
FUNCTION F (x) F = x * x END FUNCTION
REM ГРАФИК ФУНКЦИИ SCREEN 12 REM Строим оси FOR I = 0 TO 3 LOCATE 16, 38 + 10 * I: PRINT 4 * I NEXT FOR I = 0 TO 3 s$ = "-" + STR$(4 * I) LOCATE 16, 38 - 10 * I: PRINT s$ NEXT FOR I = 0 TO 4 LOCATE 16 - 3 * I, 38: PRINT 5 * I NEXT FOR I = 0 TO 3 s$ = "-" + STR$(5 * I) LOCATE 16 + 3 * I, 37: PRINT s$ NEXT LINE (10, 240)-(630, 240) LINE (320, 10)-(320, 470) COLOR 3 LOCATE 1, 38: PRINT "Y" LOCATE 17, 77: PRINT "X" REM Строим график функции COLOR 2 PSET (20*(-10) + 320, 240 - 10 * F(-10)) FOR x = -10 TO 10 STEP .1 XX = 20 * x + 320 YY = 240 - 10 * F(x) LINE -(XX, YY) NEXT END
Результат работы программы для y=x2
Результат работы программы для y=x3-2.5
Оператор DRAW позволяет выполнять разнообразные графические операции.
· Команды черчения по восьми направлениям: U, D, L, R, E, F, G, H.
H
| U
| E
| L
|
| R
| G
| D
| F
| - Команда М чертит от текущей точки до точки с координатами x, y. Если перед координатами стоит знак плюс или минус, то координаты относительные, а не абсолютные.
- Команда Sизменяет масштаб черчения.
- Команда А поворачивает изображение (А0-0, А1-90, А2-180, А3-270 градусов).
Пример: Рисование флагов.
REM Флаги SCREEN 1 PSET (50, 10) DRAW "R20 G5 F5 L20 U10" DRAW "B D20" DRAW "S5 R20 G5 F5 L20 U10" DRAW "BD20" DRAW "S4 R20 G5 F5 L20 U10" DRAW "BD20" DRAW "R20 G5 F5 L20 U10" DRAW "BD40" DRAW "A3 R20 G5 F5 L20 U10" END
Результат работы программы:
|