Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Графическая библиотека PascalABC.NET.. 7Стр 1 из 2Следующая ⇒
МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Ижевский государственный технический университет имени М.Т. Калашникова» (ФГБОУ ВО «ИжГТУ имени М.Т. Калашникова») С.Ф. Егоров Методические указания к выполнению лабораторных работ по дисциплинам «Инженерная и компьютерная графика 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г.)
Лабораторные работы по дисциплине «Инженерная и компьютерная графика 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 для копирования прямоугольных областей пикселей с канвы на канву:
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 экз. Заказ № Отпечатано в типографии Издательства ИжГТУ
Издательство и типография Ижевского Государственного технического университета. МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Ижевский государственный технический университет имени М.Т. Калашникова» (ФГБОУ ВО «ИжГТУ имени М.Т. Калашникова») С.Ф. Егоров Методические указания к выполнению лабораторных работ по дисциплинам «Инженерная и компьютерная графика 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г.)
Лабораторные работы по дисциплине «Инженерная и компьютерная графика 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 с.) |