Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PASСAL_a4_2007.doc
Скачиваний:
31
Добавлен:
13.09.2019
Размер:
2.51 Mб
Скачать

Как рисовать сложные картинки

Для рисования сложных изображений проще всего использовать графические редакторы. Тут следует иметь в виду следующие особенности:

a) графические редакторы, как правило, записывают картинки в виде набора разноцветных точек. Для оптимальной записи таких изображений придуманы различные способы уплотнения картинок, называемые ФОРМАТАМИ. Формат картинки можно узнать по расширению файла, содержащего эту картинку. Наиболее распространенными являются форматы PCX, PIC и TIF. Существуют программы, позволяющие перекодировать изображение из одного формата в другой. Поэтому пока мы будем работать только с картинками в формате PCX (если Вам попадется картинка в другом формате, Вы перекодируете ее13 в формат PCX, а затем можете с ней работать);

б) большие картинки хранятся обычно в отдельных файлах и выводятся специальными процедурами. В учебной библиотеке Graph0 имеется процедура

Show(var PATH:string;xle,yle:word); ,

которая позволит выводить на экран картинку в формате PCX. Имя файла, включающее и путь к файлу, является первым параметром процедуры, xle,yle - координаты верхнего левого угла прямоугольной картинки.

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

Для создания небольших, но достаточно сложных изображений часто используются графические редакторы. Технология здесь достаточно проста:

1) в графическом редакторе рисуется необходимое изображение;

2) картинка записывается в файл на диск. Будем считать, что картинки записываются в формате PCX (таких форматов, как уже отмечалось, существует несколько разновидностей);

3) далее следует в программе с помощью Show вывести картинку на экран, вырезать с помощью GetImage требуемый фрагмент и использовать его в программе.

Другой вариант: картинку (или часть картинки) преобразуем так, чтобы она представляла собой некий числовой массив внутри программы.

Детально Вы познакомитесь с приемом преобразования картинок на лабораторной работе.

Лабораторная работа 16. Мультипликация с использованием страниц видеопамяти

Цель работы:

научиться использовать страницы видеопамяти для моделирования движения объектов.

В предыдущей лабораторной работе Вы научились программировать движущиеся изображения за счет вывода рисунка, стирания его и рисования на новом месте. Достаточно прилично, без мигания такое движение программируется в случае, если картинка достаточно маленькая (не более 15х15 точек). А что делать, если картинка больше? Можно решить эту проблему несколькими путями. Один из них - использование страниц видеопамяти (к другим путям можно отнести переход на другие языки программирования - Си или Ассемблер или использование специальных очень дорогих пакетов для создания мультипликации). К сожалению, страницы видеопамяти имеются только в режимах EGA.

При создании движущегося изображения с использованием, например, двух видеостраниц поступают следующим образом:

1) рисуют картинку на невидимой странице и после этого делают эту страницу видимой;

2) затем выводят картинку в новое место на невидимой странице и делают теперь ее видимой (предыдущая страница становится невидимой);

3) на невидимой странице картинку удаляют и повторяют все с пункта 1.

Для реализации этого алгоритма Вам потребуются следующие функции:

SetVisualPage(Page : word); - устанавливает видимой страницу с номером Page.

SetActivePage(Page : word); - устанавливает активной страницу с номером Page. Все действия по вводу/выводу изображения будут происходить с этой страницей.

ClearDevice; - очищает экран.

  • Имейте в виду, что при обращении к InitGraph экран очищается. Использование ClrScr не только бессмысленно (эта процедура рассчитана на работу в алфавитно-цифровом режиме), не и опасно - Ваша программа может начать делать «что-то не то».

Задание 1

Скопируйте в Ваш каталог файл pulsar.pas. Запустите среду Turbo Pascal.

Задание 2

Загрузите программу из файла pulsar.pas . Разберитесь в тексте программы. Запустите программу на выполнение.

Задание 3

Составьте программу, в которой цветок будет бегать:

а) справа налево по экрану;

б) по периметру экрана.

Задание 4

Составьте программу “Бег на месте”.

Задание 5

Составьте программу «Пароход плывет, качаясь на волнах, и уплывает за экран...»

Задание 6

Составить мультфильм «Взлет воздушных шаров» (шары разноцветные, разных размеров, летят снизу вверх с разной скоростью).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]