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

Лабораторная работа 17. Технология представления картинок в виде числового массива

Цель работы:

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

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

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

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

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

Попробуем разобраться как это делается практически.

Предположим, что Вы уже создали несколько картинок, хранящихся в файлах artists.pcx, bods.pcx и towns.pcx.

Задание 1

Запустите программу pcx_img.exe. Эта программа позволит Вам вырезать любой фрагмент из готовой картинки и проделать необходимые преобразования для включения картинки в текст программы. Для этого:

  • после вывода титула нажмите клавишу <ПРОБЕЛ>. Появится окно, где следует задать имя PCX-файла (используйте один из подготовленных) и имя файла, куда будет записываться фрагмент картинки (файл должен иметь расширение PAS);

  • если Вы задали оба имени и нажали клавишу <ENTER>, появится картинка (это произойдет, если файл, содержащий картинку, существует и на диске есть место для записи файла). Кроме того, на экране появится маленький квадратик. С помощью стрелок установите левый верхний угол этого квадратика в левый верхний угол запоминаемого фрагмента картинки.

Этот угол должен быть выбран таким образом, чтобы можно было нарисовать из него прямоугольную рамку, охватывающую весь запоминаемый фрагмент рисунка. После этого нажмите <ENTER>;

  • теперь прямоугольник превратился в “резиновый”. С помощью клавиш со стрелками растяните его так, чтобы он охватил весь запоминаемый фрагмент. Затем нажмите клавишу <ENTER>;

  • экран очистится, в центре появится картинка, а через некоторое время - надписи “Эта картинка размещена в массиве PIC1 файла ...” и “Нажмите любую клавишу...”. Нажмите эту клавишу. Снова появится титул. Нажмите <ESC> и выйдите из программы.

Задание 2

Скопируйте в свой каталог файл ex_leo.pas. Запустите систему Turbo Pascal. Загрузите файл ex_leo.pas. Загрузите созданный Вами файл. Он представляет собой описание массива констант. В псевдокомментарий14 программы вставьте имя файла, в котором хранится картинка

u ses Crt,Graph;

{ $i _______.pas} {сюда вставьте имя файла}

var GraphDriver,Graphmode,ErrCode:integer;

begin

GraphDriver:=Detect;

Initgraph(GraphDriver,Graphmode,’d:\tp70\bgi’);

ErrCode := GraphResult; {GraphResult - это функция, которая выдает код завершения операции включения графического режима. Если все нормально, то этот код равен 0 (grOk=0 - зарезервированная константа языка}

if ErrCode = grOk then

begin

putimage(300,100,pic1,0);

readkey;

closeGraph;

end

end.

Задание 3

Модифицируйте программу таким образом, чтобы картинка двигалась по замкнутой траектории (окружности, периметру экрана и т.п.). Постарайтесь обеспечить “немигающее” движение.

Задание 4*

Модифицируйте программу так, чтобы объект двигался по прямой, но по принципу бильярдного шара: «ударяясь» о границу экрана, он вызывает звук и меняет направление по принципу “угол падения равен углу отражения”.

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