Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


II .6. Оператор цикла с параметром. Мигание



Компьютерная анимация – это получение движущихся изображений на экране монитора.

Оператор цикла с параметром можно использовать для получения целого ряда графических эффектов. Разобьем эффекты на группы и рассмотрим примеры программ к каждому из них.

1) Получение единого изображения, путем повторения его детали.

Пример был разобран выше (зигзаг). Деталь зигзага – зубец. Повторяя фрагмент рисования зубца определенное количество раз, было получено изображение зигзага.

2) Мигание.

Задание: Нарисовать маячок, лампа которого мигает желтым цветом.

Решение:

Уточним требования: пусть маячок будет расположен в центре экрана (центр окружности, изображающей лампу, совпадает с точкой (320, 240)), линии будем изображать серым цветом, треугольник закрасим синим, высота и основание треугольника имеют величину h, радиус лампы равен h\4.

Фрагмент программы, рисующей маячок, будет таков:

X=320

Y=240

LINE( X-H\2, Y+H\2)-(X, Y-H\2), 7

LINE –(X+H\2, Y+H\2), 7

LINE – (X-H\2, Y+H\2), 7

PAINT (X, Y), 1, 7

CIRCLE(X, Y), H\4, 7

Пусть маячок мигает 10 раз. Необходимо закрасить лампу желтым цветом, задержать на какое-то время, закрасить лампу черным цветом, задержать на какое-то время. И эти команды повторить 10 раз.

Для задержки изображения можно использовать один из двух приемов:

- применить специальный оператор;

Формат:           SLEEP n

Sleep – служебное слово;

n – количество секунд, на которые система как бы заснет.

- использовать пустой оператор цикла с параметром.

Если необходимо отсрочить выполнение оператора лишь на доли секунды, то целесообразно использовать пустой оператор цикла с параметром.

Пример: FOR I=1 TO 1000

           NEXT I

Пока система будет выполнять отсчет от 1 до 1000, пройдут доли секунды. Размер этого времени можно изменить, изменив конечное значение параметра. Сам размер нельзя указать точно, т.к. он зависит от характеристик компьютера.

Для решения задачи потребуется реализовать следующий алгоритм:

1. Ввести высоту маячка;

2. Нарисовать маяк;

3. В цикле от 1 до 10:

а) закашиваем лампу желтым;

б) задерживаем;

в) закрашиваем лампу черным;

г) задерживаем.

 

 Программа:

CLS

PRINT “ввести высоту маячка”

INPUT H

SCREEN 12

X=320: Y=240

LINE( X-H\2, Y+H\2)-(X, Y-H\2), 7

LINE –(X+H\2, Y+H\2), 7

LINE – (X-H\2, Y+H\2), 7

PAINT (X, Y), 1, 7

CIRCLE(X, Y), H\4, 7

FOR I=1 TO 10

PAINT(X, Y), 14, 7

SLEEP 1

PAINT(X, Y), 0, 7

SLEEP 1

NEXT I

END

3) Исчезновение и появление объекта.

Задание: Заставить смайлик исчезать и появляться на экране 100 раз.

 

Решение:

Уточним требования: пусть смайлик будет расположен в центре экрана (центр окружности, изображающей лицо, совпадает с точкой (320, 240)), линии будем изображать серым цветом, лицо закрасим желтым, радиус лица имеет величину r, радиус глаз равен r\6, длина линии рта равна r.

Фрагмент программы, рисующей маячок, будет таков:

X=320

Y=240

CIRCLE(X, Y), R, 7

PAINT(X, Y), 14, 7

CIRCLE(X-R\2, Y-R\2), R\6, 7

PAINT(X-R\2, Y-R\2), 1, 7

CIRCLE(X+R\2, Y-R\2), R\6, 7

PAINT(X+R\2, Y-R\2), 1, 7

LINE( X-R\2, Y+R\2)-(X+R\2, Y+R\2), 4

 

Для решения задачи потребуется реализовать следующий алгоритм:

1. Ввести радиус смайлика;

2. В цикле от 1 до 100:

а) рисуем смайлик;

б) задерживаем;

в) закрываем изображение черным квадратом;

г) задерживаем

 

Программа:

CLS

PRINT “ввести радиус смайлика”

INPUT R

SCREEN 12

X=320

Y=240

FOR I=1 TO 100

CIRCLE(X, Y), R, 7

PAINT(X, Y), 14, 7

CIRCLE(X-R\2, Y-R\2), R\6, 7

PAINT(X-R\2, Y-R\2), 1, 7

CIRCLE(X+R\2, Y-R\2), R\6, 7

PAINT(X+R\2, Y-R\2), 1, 7

LINE( X-R\2, Y+R\2)-(X+R\2, Y+R\2), 4

FOR W=1 TO 1000

NEXT W

LINE(X-R, Y-R)-(X+R, Y+R), 0, BF

FOR W=1 TO 1000

NEXT W

NEXT I

END

Задания для самостоятельного решения:

1. Пусть дерево меняет цвет с интервалом в 2 секунды: зеленое, желтое, красное. И так 5 раз.


Поделиться:



Последнее изменение этой страницы: 2019-03-30; Просмотров: 52; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.015 с.)
Главная | Случайная страница | Обратная связь