Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Тема: Движение графических объектов




Практическая работа №6

Цель: изучить применение графических функций и циклических операторов для организации движения графических объектов в Pascal.

Вид работы: индивидуальный.

Время выполнения: 6 часов.

Теоретические сведения:

Перед использованием графических процедур и функций необходимо произвести инициализацию графики с помощью процедуры Initgraph(D, M, P). D – переменная, в которую необходимо записать код требуемого графического драйвера или нуль, если требуется автоматическое определение драйвера; M – переменная, в которую процедура помещает код графического режима; P – строка, содержащая путь к драйверу (если строка пустая, считается, что драйвер находится в текущем каталоге).

Завершает работу в графическом режиме и осуществляет переход в текстовый режим процедура Closegraph.

Как правило, для перемещения используются различные виды циклов, в которых изменяются необходимые координаты объекта. Например, для перемещения окружности по горизонтали можно привести следующий фрагмент программы (строки пронумерованы для пояснений):

{1} For i:=1 to 200 do

{2} Begin

{3} Setcolor(red);

{4} Circle (i, 200, 50);

{5} For j:=1 to 300 do s:=s+cos(j);

{6} Setcolor(black);

{7} Circle(i, 200,50);

{8} End;

Прокомментируем каждую строку:

{1} параметрический цикл для изменения координаты x от 1 пикселя до 200 пикселей с шагом 1 пиксель;

{2} начало тела цикла;

{3} устанавливаем цвет рисования окружности – красный;

{4} рисуем окружность красного цвета с центром в точке (i, 200) и радиусом 50 пикселей;

{5} данный цикл применяется в том случае, если не подключается модуль CRT и, следовательно, нет возможности использовать процедуру DELAY(N). Эта строка предназначена для загрузки процессора вычислениями (пока процессор выполняет действия, пользователь может видеть на экране графической объект);

{6} устанавливаем цвет рисования окружности – чёрный;

{7} рисуем окружность чёрного цвета с центром в точке (i, 200) и радиусом 50;

{8} завершение параметрического цикла.

В итоге мы получаем перемещение окружности по горизонтали посредством перерисовки объекта цветом фона.

Ход работы:

1) проверьте наличие файлов с расширением bgi в каталоге BGI;

2) укажите в меню Options в пункте Directories путь к файлам bgi;

3) подключите графический модуль и инициализируйте в программе графику;

4) решите задачи;

5) оформите листинги программ в тетрадь;

6) третье задания являются дополнительными.

Задания к работе:

Вариант №1

1. Организуйте движение прямоугольника по горизонтали. Длины сторон задаются с клавиатуры.

2. По периметру экрана с помощью окружностей нарисуйте рамочку.

3. *Смоделируйте на экране “звёздное небо”. Количество “звёзд” вводить с клавиатуры.

 

Вариант №2

1. Организуйте движение окружности по вертикали. Радиус определяется через генератор случайных чисел.

2. По периметру экрана с помощью прямоугольников нарисуйте рамочку.

3. *Нарисуйте “снежную бабу”, которая будет подмигивать.

 

Вариант №3

1. Организуйте движение эллипса по горизонтали. Длины полуосей вводятся с клавиатуры.

2. По периметру экрана с помощью разноцветных точек нарисуйте рамочку.

3. *Изобразите “рожицу”, меняющую выражение.

 

Вариант №4

1. Организуйте движение квадрата по вертикали. Начальные и конечные координаты движения определяются с клавиатуры.

2. Изобразите пять расходящихся закрашенных кругов, образующих мишень.

3. *Смоделируйте движение окружности по синусоиде.

 

Вариант №5

1. Организуйте движение окружности по диагонали. Радиус вводится с клавиатуры.

2. Изобразите пять расходящихся из центра закрашенных прямоугольников.

3. *Отобразите время, вводимое с клавиатуры, на семисегментных часах.

 

Вариант №6

1. Организуйте движение эллипса по диагонали. Полуоси эллипса задаются через генератор случайных чисел.

2. Нарисуйте “снежинку”, которая кружится по экрану случайным образом.

3. *Постройте секторную диаграмму для пяти произвольных чисел.

 

Вариант №7

1. Организуйте движение некоторого отрезка по горизонтали. Координаты начала и конца отрезка вводятся с клавиатуры.

2. Смоделируйте движение расходящихся кругов от брошенного в воду камня.

3. *Получите затухающие колебания предмета на пружине.

 

Вариант №8

1. Организуйте движение некоторого отрезка по вертикали. Координаты начала и конца отрезка задаются случайным образом.

2. Смоделируйте столкновение двух “камней”, катящихся по горизонтали навстречу друг другу.

3. *Получите на экране текущий год по семисегментному шаблону.

 

Вариант №9

1. Организуйте движение дуги по диагонали. Координаты центра дуги определяются с клавиатуры.

2. Изобразите, как между двух вертикальных стенок прыгает мяч.

3. *Рассмотрите, как в окнах некоторого дома загорается свет.

 

Вариант №10

1. Организуйте движение дуги по горизонтали. Радиус дуги задаётся через генератор случайных чисел.

2. “Замостите” экран окружностями, причём заливка окружностей производится разными цветами и стилями.

3. *Смоделируйте движение НЛО по экрану.

 

Контрольные вопросы:

1) Сколькими способами можно реализовать движение объекта в Pascal? Опишите каждый из способов.

2) Какие модули используются при работе с графикой?

3) Назовите графические процедуры и функции и определите их назначение.

4) Охарактеризуйте назначение процедуры initgraph.

 

Рекомендуемая литература:

1.Исаченко О.В. Программное обеспечение компьютерных систем: Учебное пособие.- М.: ИНФРА-М

2.Сальников Ю.Н. Программирование: Базовый курс: Учебное пособие/ Ю.П.Сальников.- М.: Маркет.

3.Лесневский А.С. Объектно- ориентированное программирование для начинающих:Учебное пособие - М.: БИНОМ.

4.Голицына О.Л. Языки программирования: Учебное пособие /О.Л.Голицына- М.:ФОРУМ; ИНФРА-М.




Поделиться с друзьями:


Дата добавления: 2014-12-16; Просмотров: 496; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.019 сек.