Программирование на языке qbasic



бет9/13
Дата28.06.2016
өлшемі479.5 Kb.
#163119
1   ...   5   6   7   8   9   10   11   12   13

Раскрашивание


Раскрасить замкнутую область можно с помощью оператора PAINT:


PAINT (x,y),цвет,цвет границы

Рассмотрим следующую картинку рыбы:




SCREEN 12
CIRCLE (190, 100), 100, 1, , , .3 'синий эллипс –тело рыбы

CIRCLE (265, 92), 5, 1, , , .7 'синий эллипс – глаз рыбы

'ограниченное синим тело рыбы станет зелёным

PAINT (190, 100), 2, 1


LINE (40, 120)-(40, 80), 2 'зелёный контур

LINE (40,80)-(100, 100), 2 'рыбий хвост

LINE (100,100)-(40, 120), 2'рисунок
'хвост с зелёным контуром становится синим

PAINT (50, 100), 1, 2


Ниже даётся эффектная программа с использованием операторов

PAINT и CIRCLE:


RANDOMIZE TIMER 'мешаем случайные числа
SCREEN 12
DO

X = RND * 640 'случайный центр

Y = RND * 480

Raadius = RND * 100 'случайный радиус

C = INT(RND * 14 + 1) 'случайный цвет C

CIRCLE (X, Y), Raadius, 15 'круг с белым контуром

PAINT (X, Y), C, 15 'закрашиваем белый круг цветом C

CIRCLE (X, Y), Raadius, C 'рисуем круг цветом С

LOOP UNTIL INKEY$ <> ""

Ещё одна интересная программа:




INPUT "Введи радиус"; R
'выбираем местоположение и направление движения

d 'направление движения

MI = 1: NI = 1
'центр

M = 100: N = 100


'включаем графический экран и начинаем рисовать
SCREEN 12

DO
'проверяем, что не выходим за пределы

IF M < R OR M > 640 - R THEN MI = -MI

IF N < R OR N > 480 - R THEN NI = -NI

CIRCLE (M, N), R, 0 'закрашиваем чёрным (для стирания)

M = M + MI

N = N + NI

CIRCLE (M, N), R 'белый цвет


'далее стоит задержка (число 200 может быть увеличено)
FOR pidur = 1 TO 200

NEXT pidur

LOOP UNTIL INKEY$ <> ""



Оператор DRAW

Рассмотрим следующую программу:




SCREEN 12

DRAW "U100 L200 D100 R200"


С помощью оператора DRAW можно двигать невидимый карандаш в разных направлениях. В этом примере двигаем его на 100 единиц вверх (U100 -UP), затем на 200 единиц влево (L200 -LEFT), затем на 100 единиц вниз (D100 - DOWN) и на 200 единиц вправо (R200 -RIGHT).


Нарисовав 4 прямоугольника, получаем окно:


SCREEN 12

DRAW "U100 L200 D100 R200"

DRAW "D100 L200 U100 R200"

DRAW "D100 R200 U100 L200"

DRAW "U100 R200 D100 L200"

Эта же программа может быть записана по-другому.


SCREEN 12

DRAW "U100L200D100R200D100L200U100R200D100"

DRAW "R200U100L200U100R200D100L200"


Следующая программа рисует треугольник.




SCREEN 12

DRAW "U100 TA120 U100 TA60 D100"


Здесь ТА120 меняет угол рисунка на 120 градусов. (TURN ANGLE)


Таким образом, у экранного курсора есть не только местоположение, но и угол, который может менятся от –360 градусов до 360. Вначале рисуем под углом 0 градусов.
По умолчанию единицей измерения является 1 пиксел. Но его можно изменять.
Оператор DRAW имеет следующий общий вид:
DRAW text$ где text$ есть текстовая переменная, состоящая из следующих элементов:


Dnr

Смещает графический курсор на nr единиц вниз (без задания nr – на 1 единицу вниз (down).

Unr

Смещает графический курсор на nr единиц вниз (без задания nr – на 1 единицу вверх (up).

Rnr

Смещает графический курсор на nr единиц вниз (без задания nr – на 1 единицу вправо (right)

Lnr

Смещает графический курсор на nr единиц вниз (без задания nr – на 1 единицу влево (left)

Enr

Смещает графический курсор на nr единиц по диагонали вверх и направо

Fnr

Смещает графический курсор на nr единиц по диагонали вниз и направо

Gnr

Смещает графический курсор на nr единиц по диагонали вниз и налево

Hnr

Смещает графический курсор на nr единиц по диагонали вверх и налево

Mx,y

Смещает графический курсор на точку с координатами х ,y . Если перед ними стоит знак +,- учитывается местоположение курсора.

B

Движется, не рисуя

N

Рисует линию, оставляя курсор невидимым в том же месте.

Anr

Делает поворот на nr * 90°. nr может быть 0, 1, 2 или 3

Cnr

Устанавливает цвет

Pjoonv,taustv

Закрашивает изображение. Первый параметр указывает цвет закраски, второй- границу окраски.

Snr

Устанавливает масштаб , по умолчанию nr=4, т.е. 1:1. nr может быть целое число от 1.до .255.

TAkraad

Устанавливает угол рисунка в градусах от -360..до 360. По умолчанию =0.

Пример программы рисунка:


SCREEN 12

PRINT "Нажми на стрелку."

PRINT "Для окончания нажми ESC"

DO

klahv$ = INKEY$



SELECT CASE klahv$

CASE CHR$(0) + "H" 'стрелка вверх

DRAW "U10"

CASE CHR$(0) + "P" 'стрелка вниз

DRAW "D10"

CASE CHR$(0) + "K" 'стрелка влево

DRAW "L10"

CASE CHR$(0) + "M" 'стрелка вправо

DRAW "R10"

CASE CHR$(27) 'клавиша ESC

END

END SELECT



LOOP







Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   13




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет