Студопедия
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

Результат работы программы:

 


<== previous lecture | next lecture ==>
Занятие 9. Подпрограммы. Функции | Лабораторная работа №1
lektsiopedia.org - 2013 год. | Page generation: 0.003 s.