Раскрасить замкнутую область можно с помощью оператора 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
|
|
Достарыңызбен бөлісу: |