Графическая библиотека PascalABC.NET.. 7 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Графическая библиотека PascalABC.NET.. 7



МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное

учреждение высшего образования

«Ижевский государственный технический университет имени М.Т. Калашникова»

(ФГБОУ ВО «ИжГТУ имени М.Т. Калашникова»)

С.Ф. Егоров

Методические указания
 «СПРАЙТОВАЯ  АНИМАЦИЯ»

к выполнению лабораторных работ  по дисциплинам

 «Инженерная и компьютерная графика 2»

И «Компьютерная графика»

Рекомендовано учебно-методическим советом ФГБОУ ВО
«ИжГТУ имени М.Т. Калашникова» для использования в учебном процессе
в качестве методических указаний для студентов, обучающихся

по направлению  09.03.01 - Информатика и вычислительная техника
(бакалавриат, профиль: вычислительные машины, комплексы, системы и сети)
(бакалавриат, профиль: автоматизированные системы обработки информации и управления)
(бакалавриат, профиль: системы автоматизированного проектирования)

по направлению  10.05.03 - Информационная безопасность автоматизированных систем
(специалитет, специализация: защищенные автоматизированные системы управления)


Рег. номер

 12/Ф06/ГОС2

 

 

Методические рекомендации по организации самостоятельной работы студентов составлены в соответствии с рабочей программой учебной дисциплины, разработанной на основе Федерального государственного образовательного стандарта  по направлению: 09.03.01 - Информатика и вычислительная техника, профиль: вычислительные машины, комплексы, системы и сети,  профиль: автоматизированные системы обработки информации и управления, профиль: системы автоматизированного проектирования и  по направлению 10.05.03 - Информационная безопасность автоматизированных систем, специализация: защищенные автоматизированные системы управления при изучении дисциплин «Инженерная и компьютерная графика 2» и «Компьютерная графика».

 

 

Рецензент:     Коробейников А. В.,  канд. техн. наук,  зав. кафедры «Программное обеспечение» ИжГТУ имени М.Т. Калашникова

 

 

Составитель: Егоров С. Ф.,  канд. техн. наук,  доцент кафедры «Вычислительная техника» ИжГТУ имени М.Т. Калашникова

 

 

Рекомендовано Ученым советом факультета для использования в учебном процессе в качестве учебно-методических материалов для студентов, обучающихся по направлению: 09.03.01 - Информатика и вычислительная техника, профиль: вычислительные машины, комплексы, системы и сети,  профиль: автоматизированные системы обработки информации и управления, профиль: системы автоматизированного проектирования и  по направлению 10.05.03 - Информационная безопасность автоматизированных систем, специализация: защищенные автоматизированные системы управления при изучении дисциплин «Инженерная и компьютерная графика 2» и «Компьютерная графика»  (протокол №__ 19 _ от «__ 14 __» мая 2018 г.)

 

Рекомендовано Советом факультета «Информатика и вычислительная техника» к использованию в качестве учебно-методических материалов для использования в учебном процессе для направления 09.03.01 - Информатика и вычислительная техника (бакалавриат, профиль: вычислительные машины, комплексы, системы и сети) по дисциплине «Инженерная и компьютерная графика 2» (протокол № _ 8 _ от _ 22.11.2013г.)

 

С74 Егоров С. Ф. Спрайтовая анимация: Методические указания к выполнению лабораторных работ по дисциплине «Инженерная и компьютерная графика 2». – Ижевск, 2014. – 18 с.

 

 

Лабораторные работы по дисциплине «Инженерная и компьютерная графика 2» посвящены изучению растровой графики персонального компьютера IBM PC с возможностями спрайтовой анимации в системах программирования Pascal (Delphi, ABC.NET) и C (Visual++,#) с графической библиотекой BGI+, GDI+,.NET. Приводятся указания по оформлению и содержанию отчета, контрольные вопросы, пример программы.

 

 

© С. Ф. Егоров, составление, 2018

© ФГБОУ ВО «ИжГТУ имени М.Т. Калашникова», 2018


Тема:

Спрайтовая анимация

Цели работы:

1. Ознакомиться с графической библиотекой BGI+ (Borland Grafics Interface) фирмы Borland International для среды Delphi и GDI+ для среды MS Visual.

2. Реализовать один из алгоритмов спрайтовой анимации (лаб. раб. № 1).

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

1. Хныкина А.Г. Инженерная и компьютерная графика [Электронный ресурс]: учебное пособие / А.Г. Хныкина. — Электрон. текстовые данные. — Ставрополь: Северо-Кавказский федеральный университет, 2016. — 99 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/69383.html

2. Папуловская Н.В. Математические основы программирования трехмерной графики [Электронный ресурс]: учебно-методическое пособие / Н.В. Папуловская. — Электрон. текстовые данные. — Екатеринбург: Уральский федеральный университет, 2016. — 112 c. — 978-5-7996-1942-8. — Режим доступа: http://www.iprbookshop.ru/68345.html

3. Колесниченко Н. М.   Инженерная и компьютерная графика [Электронный ресурс]: учебное пособие / Н. М. Колесниченко, Н. Н. Черняева. — Электрон. текстовые данные. — М.: Инфра-Инженерия, 2018. — 236 c. — 978-5-9729-0199-9. — Режим доступа: http://www.iprbookshop.ru/78267.html

4. Говорова С.В. Инженерная и компьютерная графика [Электронный ресурс]: лабораторный практикум / С.В. Говорова, И.А. Калмыков. — Электрон. текстовые данные. — Ставрополь: Северо-Кавказский федеральный университет, 2016. — 165 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/69382.html

 

Оглавление

1. Графическая библиотека BGI+ среды Delphi 4

Спрайтовая анимация. 14

Предварительные расчеты.. 14

Методы анимации. 15

6.1. Общий метод. 15

6.2. Отсечение фона маской спрайта. 16

6.3. Простая XOR-анимация. 17

Содержание отчета. 19

9. Выбор варианта задания для студентов. 19

10. Контрольные вопросы.. 20

Пример программы на языках Delphi и C#. 20

Выводы... 23

 


1. Графическая библиотека BGI+ среды Delphi

Работа с графикой в Delphi (или С++Builder) предполагает обращение к канве - свойству Canvas компонентов. Canvas Delphi это холст, который позволяет программисту иметь доступ к каждой своей точке (пикселу), и словно художнику отображать то, что требуется (BGI+ как надстройка над GDI+ Windows).

В работе с графикой в Delphi в распоряжении программиста находятся не только канва (холст, полотно - свойство Canvas Delphi компонентов), но и карандаш (свойство Pen), и кисть (свойство Brush) того компонента или объекта, на котором предполагается рисовать. У карандаша Pen и кисти Brush можно менять цвет (свойство Color) и стиль (свойство Style), а у карандаша еще и толщину (Width) и т.п. Доступ к шрифтам предоставляет свойство канвы Font. Эти инструменты позволяют отображать как текст, так и достаточно сложные графики математического и инженерного содержания, а также рисунки. Кроме этого, работа с графикой позволяет использовать в Delphi такие ресурсы Windows как графические и видеофайлы.

Конечно, не все компоненты в Delphi имеют эти свойства. На вкладке Additional расположен специализированный компонент TImage, специально предназначенный для рисования, но также свойство Canvas имеют, например, такие компоненты как ListBox, ComboBox, StringGrid, а также и сама Форма, которая размещает наши компоненты! Кроме этого «рисовать» можно на TPaintBox и на невидимом объекте TBitMap – контейнере (буфере в ОЗУ) рисунков.

Основное свойство такого объекта как Canvas Delphi - Pixels [i, j] типа TColor, то есть это двумерный массив точек (пикселов), задаваемых своим цветом. Рисование на канве происходит в момент присвоения какой-либо точке канвы заданного цвета. Каждому пикселу может быть присвоен любой доступный для Windows цвет. Например, выполнение оператора

Image1.Canvas.Pixels[100, 200]:=clRed;

приведёт к рисованию красной точки с координатами [100, 200]. Узнать цвет пиксела можно обратным присвоением:

Color:=Image1.Canvas.Pixels[100, 200];

Тип TColor определён как длинное целое (LongInt). Его четыре байта содержат информацию о долях синего (B), зелёного (G), и красного (R) цветов. В 16-ричной системе это выглядит так: $00BBGGRR. Доля каждого цвета может меняться от 0 до 255. Поэтому, например, чтобы отобразить максимально красную точку, ей нужно присвоить цвет $000000FF.

Для ускорения работы с пикселями в TBitMap можно воспользоваться свойством ScanLine, которое возвращает адрес строки (массива) пикселей по 3 байта на цвет. Кроме этого есть методы TCanvas для копирования прямоугольных областей пикселей с канвы на канву:

ИМЯ ОПИСАНИЕ ПРИМЕР
Draw Рисует TGraphic на канвасе так как он есть, не растягивая. Canvas.Draw(5,10,MyGraphic);
StrechDraw Рисует TGraphic на канвасе, подгоняя (растягивая) его под заданную область. Canvas.StretchDraw(Bounds(0,0,32,32), MyGraphic);
CopyRect Копирует часть TCanvas-а в другой, при необходимости растягивая его. Canvas.CopyRect(Bounds(0,0,32,32), MyBmp.Canvas, Bounds(0, 0, 640, 480));

TCanvas.Draw является обёрткой для API Windows функции BitBlt:

function BitBlt(

hdcDest: HDC; // дескриптор конечного контекста устройства

nXDest,        // коорд. x верхнего левого угла конечного прямоугольника

nYDest,    // коорд. y верхнего левого угла конечного прямоугольника

nWidth,      // ширина конечного прямоугольника

nHeight: Integer; // высота конечного прямоугольника

hdcSrc: HDC; // дескриптор исходного контекста устройства

nXSrc,     // коорд. x верхнего левого угла исходного прямоугольника

nYSrc: Integer; // коорд. y верхнего левого угла исходного прямоугольника

dwRop: DWORD // код растровой операции

): Boolean;

и поддерживает режим «прозрачного цвета», который не копируется и задается свойствами: TGraphics.Canvas.Transparent:=true; и.TransparentColor:=clWhite, например.

 

Для стандартных цветов в Delphi определён набор текстовых констант. Тоже относится к набору стилей (карандаша и кисти) и режимов цвета.

 

 

 

 

 

 

Константа

Цвет

Константа

Цвет

Константа

Цвет

clBlack

Черный

clSilver

Серебристый

clPurple

Розовый

clMaroon

Каштановый

clRed

Красный

clTeal

Зелено-голубой

clGreen

Зеленый

clLime

Салатный

clGray

Серый

clOlive

Оливковый

clBlue

Синий

clAqua

Бирюзовый

clNavy

Темно-синий

clFuchsia

Ярко-розовый

clWhite

Белый

 

 

 

 

 

 

   

 

 

 

   

Константа

Вид линии Pen (Pen.Style)

 

   

psSolid

Сплошная линия

 

   

psDash

Пунктирная линия, длинные штрихи

 

   

psDot

Пунктирная линия, короткие штрихи

 

   

psDashDot

Пунктирная линия, чередование длинного и короткого штрихов

 

   

psDashDotDot

Пунктирная линия, чередование одного длинного и двух коротких штрихов

 

   

psClear

Линия не отображается (используется, если не надо изображать границу области, например, прямоугольника)

 

   

 

 

 

   

 

 

   
   

Константа

Константа

Спрайтовая анимация

 

Спрайт – изображение только динамически изменяющегося объекта в одной из фаз движения на однородном фоне (черном или белом или прозрачном).  Анимация – процесс отображения движения («оживления»).

Фон – неизменная при смене кадров часть всего изображения.

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

На каждом шаге отображения необходимо:

1. Восстановить фон на старом месте спрайта.

2. Рассчитать новое место спрайта и сохранить фон.

3. Вывести спрайт в рассчитанное место.

 

При подготовке спрайтов решаются следующие вопросы:

1. Сколько всего необходимо спрайтов?

2. Как часто нужно выводить спрайты?

3. В какие места экрана выводить?

4. Методика анимации.

 

5. Предварительные расчеты

 

N  ‑ min 2 спрайта, но лучше 4..8

n спр – частота вывода спрайтов (>=15 к/сек для плавности отображения)

t    – общее время перемещения

t × n спр – число позиций вывода

 

D X = Xk – Xo   =>    шаг_ X = D X / (t × n спр)

D Y = Yk – Yo   =>    шаг_ Y = D Y / (t × n спр)

 

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

В каждом цикле координаты рассчитываются по следующим формулам:

 

Xi +1 = Xi + шаг_ X

Yi +1 = Yi + шаг_ Y

Фазы движения спрайта должны охватывать элементарное действие:

T ф         –  промежуток времени от начальной фазы движения до конечной.

n спр × T ф –  число фаз движения (могут циклически повторяться).

 

 

Методы анимации

Общий метод

В каждой позиции:

1. Восстанавливаем общий фон под спрайтом на старом месте.

2. Рассчитываем новое место спрайта и запоминаем общий фон.

3. Выводим спрайта на новое место.

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

 

 

Простая XOR-анимация

Свойство обратимости: Свойство прозрачности нуля:

 

Этапы:

1. Восстанавливаем общий фона XOR-выводом спрайта на старое место.

2. Рассчитываем новое место спрайта и XOR-выводим спрайт.

 

Если фон черный (код 0), то спрайт отображается нормально, если сложный, то происходит наложение цветов ‑ сквозь спрайт «просвечивается» фон искажением цветов.

Перекрытие спрайтов

В изображение каждого спрайт вводится дополнительное поле, полностью перекрывающее предыдущий спрайт на старом месте отображения.

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

Алгоритм сводится к одному действию:

1. Рассчитываем новое место спрайта и выводим его, одновременно затирая спрайт на старом месте, НО требуется предварительная подготовка спрайтов с актуальным фоном.

 

Промежуточный буфер в ОЗУ

1. Копирование общего блока (старое место + новое место спрайта) из видеобуфера в ОЗУ.

2. Восстановление фона на старое место (копирование ОЗУ-ОЗУ).

3. Взятие копии фона из нового места (копирование ОЗУ-ОЗУ).

4. Наложение маски в ОЗУ.

5. Наложение спрайта в ОЗУ.

6. Вывод общего блока из ОЗУ в видеобуфер.

 

 

Содержание отчета

 

1. Описание используемого графического формата изображений.

2. Описание используемого алгоритма анимации.

3. Описание используемого алгоритма устранения мерцания.

4. Исходный текст программы с комментариями.

5. Результат работы (скрин-шот).

6. Выводы по результатам работы.

 

 

9. Выбор варианта задания для студентов

Выводы

1. Изучение среда программирования с графической библиотекой фирмы Borland International позволяет решать практические задачи в области компьютерной графики.

2. Самостоятельная программная реализация алгоритма спрайтовой анимации позволила закрепить навыки работы с графической библиотекой и файлами изображений.

 

 

Учебное издание

 

Составитель Егоров Станислав Феликсович

 

СПРАЙТОВАЯ  АНИМАЦИЯ

Методические указания к выполнению лабораторных работ

по дисциплинам  «Компьютерная графика» и

«Инженерная и компьютерная графика 2»

 

В редакции составителя

 

Корректор И. В. Ганеева

 

Подписано в печать 30.11.2006 г.  Формат 60х84 /16

Бумага офсетная. Гарнитура “Times”

Усл. печ. л. 1,4. Уч.-изд. л. 1,35.

Тираж 50 экз. Заказ №    

Отпечатано в типографии Издательства ИжГТУ

 

Издательство и типография Ижевского Государственного технического университета.
426069, г. Ижевск, ул. Студенческая, 7

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное

учреждение высшего образования

«Ижевский государственный технический университет имени М.Т. Калашникова»

(ФГБОУ ВО «ИжГТУ имени М.Т. Калашникова»)

С.Ф. Егоров

Методические указания
 «СПРАЙТОВАЯ  АНИМАЦИЯ»

к выполнению лабораторных работ  по дисциплинам

 «Инженерная и компьютерная графика 2»

И «Компьютерная графика»

Рекомендовано учебно-методическим советом ФГБОУ ВО
«ИжГТУ имени М.Т. Калашникова» для использования в учебном процессе
в качестве методических указаний для студентов, обучающихся

по направлению  09.03.01 - Информатика и вычислительная техника
(бакалавриат, профиль: вычислительные машины, комплексы, системы и сети)
(бакалавриат, профиль: автоматизированные системы обработки информации и управления)
(бакалавриат, профиль: системы автоматизированного проектирования)

по направлению  10.05.03 - Информационная безопасность автоматизированных систем
(специалитет, специализация: защищенные автоматизированные системы управления)


Рег. номер

 12/Ф06/ГОС2

 

 

Методические рекомендации по организации самостоятельной работы студентов составлены в соответствии с рабочей программой учебной дисциплины, разработанной на основе Федерального государственного образовательного стандарта  по направлению: 09.03.01 - Информатика и вычислительная техника, профиль: вычислительные машины, комплексы, системы и сети,  профиль: автоматизированные системы обработки информации и управления, профиль: системы автоматизированного проектирования и  по направлению 10.05.03 - Информационная безопасность автоматизированных систем, специализация: защищенные автоматизированные системы управления при изучении дисциплин «Инженерная и компьютерная графика 2» и «Компьютерная графика».

 

 

Рецензент:     Коробейников А. В.,  канд. техн. наук,  зав. кафедры «Программное обеспечение» ИжГТУ имени М.Т. Калашникова

 

 

Составитель: Егоров С. Ф.,  канд. техн. наук,  доцент кафедры «Вычислительная техника» ИжГТУ имени М.Т. Калашникова

 

 

Рекомендовано Ученым советом факультета для использования в учебном процессе в качестве учебно-методических материалов для студентов, обучающихся по направлению: 09.03.01 - Информатика и вычислительная техника, профиль: вычислительные машины, комплексы, системы и сети,  профиль: автоматизированные системы обработки информации и управления, профиль: системы автоматизированного проектирования и  по направлению 10.05.03 - Информационная безопасность автоматизированных систем, специализация: защищенные автоматизированные системы управления при изучении дисциплин «Инженерная и компьютерная графика 2» и «Компьютерная графика»  (протокол №__ 19 _ от «__ 14 __» мая 2018 г.)

 

Рекомендовано Советом факультета «Информатика и вычислительная техника» к использованию в качестве учебно-методических материалов для использования в учебном процессе для направления 09.03.01 - Информатика и вычислительная техника (бакалавриат, профиль: вычислительные машины, комплексы, системы и сети) по дисциплине «Инженерная и компьютерная графика 2» (протокол № _ 8 _ от _ 22.11.2013г.)

 

С74 Егоров С. Ф. Спрайтовая анимация: Методические указания к выполнению лабораторных работ по дисциплине «Инженерная и компьютерная графика 2». – Ижевск, 2014. – 18 с.

 

 

Лабораторные работы по дисциплине «Инженерная и компьютерная графика 2» посвящены изучению растровой графики персонального компьютера IBM PC с возможностями спрайтовой анимации в системах программирования Pascal (Delphi, ABC.NET) и C (Visual++,#) с графической библиотекой BGI+, GDI+,.NET. Приводятся указания по оформлению и содержанию отчета, контрольные вопросы, пример программы.

 

 

© С. Ф. Егоров, составление, 2018

© ФГБОУ ВО «ИжГТУ имени М.Т. Калашникова», 2018


Тема:

Спрайтовая анимация

Цели работы:

1. Ознакомиться с графической библиотекой BGI+ (Borland Grafics Interface) фирмы Borland International для среды Delphi и GDI+ для среды MS Visual.

2. Реализовать один из алгоритмов спрайтовой анимации (лаб. раб. № 1).

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

1. Хныкина А.Г. Инженерная и компьютерная графика [Электронный ресурс]: учебное пособие / А.Г. Хныкина. — Электрон. текстовые данные. — Ставрополь: Северо-Кавказский федеральный университет, 2016. — 99 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/69383.html

2. Папуловская Н.В. Математические основы программирования трехмерной графики [Электронный ресурс]: учебно-методическое пособие / Н.В. Папуловская. — Электрон. текстовые данные. — Екатеринбург: Уральский федеральный университет, 2016. — 112 c. — 978-5-7996-1942-8. — Режим доступа: http://www.iprbookshop.ru/68345.html

3. Колесниченко Н. М.   Инженерная и компьютерная графика [Электронный ресурс]: учебное пособие / Н. М. Колесниченко, Н. Н. Черняева. — Электрон. текстовые данные. — М.: Инфра-Инженерия, 2018. — 236 c. — 978-5-9729-0199-9. — Режим доступа: http://www.iprbookshop.ru/78267.html

4. Говорова С.В. Инженерная и компьютерная графика [Электронный ресурс]: лабораторный практикум / С.В. Говорова, И.А. Калмыков. — Электрон. текстовые данные. — Ставрополь: Северо-Кавказский федеральный университет, 2016. — 165 c. — 2227-8397. — Режим доступа: http://www.iprbookshop.ru/69382.html

 

Оглавление

1. Графическая библиотека BGI+ среды Delphi 4

Графическая библиотека PascalABC.NET.. 7



Поделиться:


Последнее изменение этой страницы: 2020-10-24; просмотров: 119; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.48.135 (0.198 с.)