Рухома комп'ютерна графіка. Заставка "Танцюючий чоловічок"

Розробка програми на мові програмування Assembler, що виводить на екран чоловічка, який через певний час відтворює рухи. Використання кольорового графічного адаптера в текстовому режимі. Основні параметри, цикл заміни кадрів у анімації та їх створення.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык украинский
Дата добавления 24.03.2012
Размер файла 124,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Зміст

  • Вступ
  • 1. Аналіз задачі
  • 2. Визначення шляхів і методів вирішення задачі
  • 3. Розробка блок-схеми програми
  • 4. Розробка програми
  • 4.1 Підключення бібліотек
  • 4.2 Опис змінних
  • 4.3 Опис функцій
  • 4.4 Схема взаємодії модулів системи
  • Висновки
  • Література

Вступ

Комп'ютерна графіка - це графіка, тобто двовимірні зображення, які створюються, перетворюються, оцифровуються, обробляються і відображаються засобами обчислювальної техніки, включаючи апаратні і програмні засоби.

Рухома комп'ютерна графіка називається комп'ютерним відео або комп'ютерною анімацією.

Робота з комп'ютерною графікою - один з найпопулярніших напрямків використання персонального комп'ютера, до того ж займаються цією роботою не тільки професійні художники і дизайнери. На будь-яких підприємствах час від часу виникає необхідність в подачі рекламних оголошень в газетах і журналах або просто у випуску рекламної листівки або буклету.

Система IBM PC може бути забезпечена одним з двох різних дисплейних адаптерів. Один з них - адаптер кольорового графічного монітора.

Кольорова плата розроблена в IBM для підключення до пристроїв подібним телевізору. Чорно-білий адаптер працює тільки з монохромним дисплеєм фірми IBM, а кольорову плату можна підключити до будь-якого кольоровому або чорно-білому монітора, використовує стандартні телевізійні сигнали. Або, ви можете окремо придбати радіочастотний модулятор, який дозволить вам підключити вихід кольоровий плати до вашому домашньому телевізору.

Текстовий режим призначений для звичайних обчислень з виводом букв і цифр на екран. Даний режим однаковий для чорно-білих (BW) і для кольорових моніторів за винятком того, що кольорові монітори не підтримують атрибут підкреслення. Текстовий режим забезпечує роботу з повним набором ASCII-кодів (256 символів), як для чорно-білих (BW), так і для кольорових моніторів. Кожен символ на екрані може відображатися в одному з 16 кольорів на одному з восьми кольорів фону.

Трьома основними кольорами є червоний, зелений і синій. Комбінуючи основні кольори, один з одним, можна отримати вісім кольорів, включаючи чорний і білий. Використовуючи два рівні яскравості для кожного кольору, будь-які символи можуть бути відображені на екрані в одному з 16 кольорів: чорний, сірий, синій, яскраво-синій, зелений, яскраво-зелений, блакитний, яскраво-блакитний, червоний, яскраво-червоний, бузковий, яскраво-бузковий, коричневий, жовтий, білий, яскраво-білий. Фон будь-якого символу може мати один з перших восьми кольорів. Якщо фон і текст мають один і той же колір, то текст виходить невидимим. Використовуючи байт атрибуту, можна отримати також миготливі символи.

Завданням курсового проекту є розробка програми на мові програмування Assembler яка виводить на екран чоловічка, який через певний час відтворює певні рухи.

Мета контрольної роботи: вивчення роботи з графікою та удосконалення знань про мову Асемблер.

1. Аналіз задачі

Оскільки потрібно буде написати програму, яка виводить на екран чоловічка, який через певний час відтворює певні рухи то, для цього буде використано кольоровий графічний адаптер, який буде працювати у текстовому режимі. Також вихід з програми повинен здійснюватись натисненням будь-якої клавіші клавіатури або миші.

Для того, щоб розв'язати задачу в цілому, потрібно вирішити наступні підзадачі:

- задати вірні параметри для графічного режиму;

- створити цикл заміни кадрів у анімації;

- створити цикл на перевірку виходу з програми;

- створити кадри анімації;

Вдосконалення програми можна реалізувати:

- за допомогою додавання кадрів, що покращить зображення рухів;

- за допомогою зменшення швидкості руху анімації, що додасть плавності рухам.

2. Визначення шляхів і методів вирішення задачі

Асемблер (англ. assembler) - загальноприйнята назва транслятора з автокоду. Асемблер переводить початкову програму, написану на автокоді, в переміщувану програму на мові машинній. Оскільки асемблер здійснює трансляцію на мову завантажувача, при завантаженні програми необхідна налаштування умовних адрес, тобто адрес, значення яких залежать від розташування даної програми в пам'яті ЦВМ і від її зв'язків з іншими незалежно трансльованими програмами.

У простому випадку асемблер переводить одне речення початкової програми в один об'єкт (команду, константу) модуля завантаження. При цьому взаємне розташування об'єктів в модулі завантаження і, зрештою, в пам'яті машини визначається порядком пропозицій в початковій програмі на автокоді і повністю залежить від програміста. Асемблер виконує і допоміжні функції, такі, як підготовка до друку документів необхідної форми, реєстрація зв'язків даної програми з іншими програмами і т.д. Для цієї мети в автокодах передбачаються команди асемблера, які не породжують об'єктів в робочій програмі і призначені тільки для вказівки допоміжних дій асемблера.

Трансляція зазвичай вимагає двох переглядів початкової програми: при першому перегляді здійснюється розподіл пам'яті і надання значень символічним іменам; при другому - формується робоча програма у вигляді модуля завантаження. В процесі трансляції асемблер проводить повний синтаксичний контроль початкової програми, забезпечуючи при цьому достатньо точну діагностику помилок за місцем і характером.

Розширення можливостей автокодів досягається за рахунок використання макрокоманд, що будуються за правилами, близькими до правил написання команд автокоду, але що описують складніші функції, для реалізації яких потрібна група звичайних команд. В цьому випадку перед трансляцією проводиться заміна макрокоманд макророзширеннями - послідовностями команд на базовій мові відповідно до макроозначень. У останніх задається прототип макрокоманди із структурою списку параметрів і процедура генерування макророзширення. Транслятор, що виконує функції макрогенератора і асемблера, називається макроасемблером. При трансляції з мов високого рівня асемблер нерідко використовується для виконання завершальної фази трансляції.

Часто виконання графічних завдань виявляється надзвичайно вимогливо до швидкодії і компактності коду. Зокрема, це стосується, наприклад спрайтову анімації при написанні ігор, вірусів та інших резидентних програм. У таких випадках функції підтримки графіки BIOS або графічні засоби мов високого рівня не дають необхідного результату, а часто виявляються крім усього іншого і занадто примітивні і громіздкі у використанні.

Одним із шляхів підвищення швидкодії процесу, пов'язаного з використанням будь-якої апаратури, є, безсумнівно, пряме звернення до програмованим регістрів цієї апаратури і областям пам'яті, які вона використовує. Таке звернення, на перший погляд, не завжди елементарно і накладає на програміста досить жорсткі вимоги в плані коректності роботи програми з апаратурою різних виробників. Проте зусилля, витрачені на це при продуманому підході повністю окупаються.

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

Даний приклад встановлює відео режим:

SetVideoMode PROC

mov ax,;

int 10h

SetVideoMode ENDP

комп'ютерна графіка анімація програма

Окрім звернення до функції int 10h fh 0h можна перемикати відеорежим і за допомогою реєстрового програмування і прямих звернень до пам'яті. Однак це досить трудомістка і громіздка операція.

В текстовому режимі 03h відеоадаптер для виведення символів використовує буфер в пам'яті, розташований по постійному адресою 0B8000h (SEG: 0B800h, OFT: 0h). Кожна логічна осередок цього буфера складається з двох байт:

0 - ASCII-код символу

1 - Атрибут кольоровості

Осередки розташовуються безпосередньо один за одним рядках та посторінково (відеоадаптери з розміром пам'яті> = 256К підтримують 8 екранних сторінок з яких у певний момент часу може бути відображена тільки одна).

Це означає, що символ з екранними координатами 1 * 1 сторінки 0 буде мати адресу 0B8000h, символ з координатами 80 * 25 - 0B8000h + 80 * 25 * 2 - 2, символ з координатами 0 * 0 сторінки 1 - 0B8000h + 80 * 25 * 2.

Звідси виводиться кілька простих і зручних функцій записи символів на будь-яку екранну сторінку і читання символів з будь якої екранної сторінки незалежно від позиції курсора і активної сторінки

3. Розробка блок-схеми програми

Блок-схема - це розповсюджений тип схем, який описує алгоритми чи процеси, зображуючи кроки у вигляді блоків різноманітної форми, з'єднаних між собою стрілками.

На рисунку 3.1 зображена блок-схема програми заставки "Танцюючий чоловічок".

Рисунок 3.1-блок-схема програми заставки "Танцюючий чоловічок"

4. Розробка програми

4.1 Підключення бібліотек

Для спрощення роботи з об'єктними модулями використовується спеціальна програма - бібліотекар TLIB. EXE. В бібліотеку об'єктних модулів можна помістити модулі, які містять вже налагоджені процедури. При компонуванні слід ввести наступний рядок:

TLINK PR2,,, PR

Тим самим, маючи на увазі, що модуль PR1, знаходиться в бібліотеці PR. Якщо бібліотек декілька, то їх слід перерахувати в рядку, ставлячи між ними знак "+".

Основні команди бібліотекаря:

TLIB імя_бібліотеки + імя_об'єктного_модуля

Додати до бібліотеки новий об'єктний модуль. Якщо бібліотеки з таким ім'ям не існувало, то при виконанні даної команди вона з'явиться.

TLIB імя_бібліотеки - імя_об'єктного_модуля

Видалити даний об'єктний модуль з бібліотеки.

TLIB імя_бібліотеки * імя_об'єктного_модуля

Після цієї команди вказаний об'єктний модуль утворюється на диску з розширенням OBJ. При цьому він збережеться і в бібліотеці.

TLIB імя_бібліотеки - * імя_об'єктного_модуля

Робить те ж, що і попередня команда, але з видаленням об'єктного модуля з бібліотеки.

TLIB імя_бібліотеки, ім'я_файлу

Вивід каталогу бібліотеки в файл. Замість імен файлу можна використовувати стандартні імена пристроїв: CON, PRN і т.д.

TLIB імя_бібліотеки - імя_1 + імя_2

Видаляє з бібліотеки об'єктний файл з ім'я м імя_1 і заміняє його на об'єктний файл з ім'ям імя_2. При цьому потрібно вказати ім'я нової бібліотеки.

4.2 Опис змінних

Змінна - це іменована деяким чином область пам'яті в якій зберігається дані певного типу, змінного ім'я та значення. Перед виконанням змінна повинна бути оголошеною.

Змінна асемблера: DB (визначити байт), DW (визначити слово) і DD (Визначити подвійне слово). Кожна з них генерує дані, відповідні розділеним комами операнда, які слідують за директивою.

Змінна N вказує на кількість кадрів зображення.

Змінна VIDEOR використовується для запам'ятовування відеорежиму. Для того щоб його потім повернути.

Змінна tab використовується для ініціалізації кадрів зображення.

А саме 6.

Змінна DW генерує послідовність слів. Кожен операнд може являти собою вираз-константу із значенням від - 32768 До 65535, або адресний вираз. Для адресного вираження вбудований асемблер генерує покажчик ближнього типу, що є слово, що містять зміщення адреси.

Змінна DD генерує послідовність подвійних слів. Кожен операнд може являти собою вираз-константу значенням від - 2147483648 до 4294967295 чи адресне вираз. Для адресного вираження вбудований асемблер генерує покажчик далекого типу, що є слово, що містять зміщення адреси, за котрим слідує слово, що містить сегментну частину адреси.

4.3 Опис функцій

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

Функція, на відміну від процедури, обов'язково повертає значення.

З точки зору теорії систем, функція в програмуванні - окрема система

(підсистема, підпрограма), на вхід якої надходять керуючі впливу у вигляді значень аргументів. На виході функція повертає результат, який може бути як скалярною величиною, так і векторним значенням (структура, індексний масив і т.п.). По ходу виконання функції можуть виконуватися, також, деякі зміни у керованій системі, причому як оборотні, так і незворотні.

При розробці програми були задіяні такі функції:

- Функція delay - затримка анімації;

- Функція draw_h - виведення зображення;

- Функція move_mask - зсув маски;

- Функція exit - вихід з програми;

- Функція а1 - ініціалізація фаз рисунку;

4.4 Схема взаємодії модулів системи

Схема - графічне представлення визначення, аналізу або методу вирішення задачі, у якому використовуються символи для позначення операцій, даних, потоку, обладнання і т.д.

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

Була розроблена схема взаємодії модулів системи (рисунок 5.1).

Рисунок 5.1 - Схема взаємодії модулів програми

Висновки

В ході курсового проекту було розроблено заставку "Танцюючий чоловічок" на мові Assembler. Під час написання курсового проекту були закріплені і поглиблені теоретичні знання, отриманні в процесі вивчення питань з предмету "Системне програмування", і був використаний вивчений матеріал для розробки програми. Був проведений детальний аналіз задачі, в якому визначились основні підзадачі для вирішення задачі в цілому. Було визначено шляхи і методи розв'язання задачі.

Для вирішення задачі було розроблено алгоритм програми і створена блок-схема. Після визначення методів та написання алгоритму відбулась розробка програми.

Було описано всі змінні, що використовувались в програмі. Розглянуто бібліотеки, що підключаються до програми і описано всі функції, що використовувались

Цю програму можна б було вдосконалити, покращивши якість програми, наприклад, додавання більшої кількості кадрів або кольорів для кращого зображення.

Література

1. Вострикова З.П. Программирование на языке ассемблера ЕС ЭВМ. М.: Наука, 1985.

2. Галисеев Г.В. Ассемблер для Win 32. Самоучитель. - М.: Диалектика, 2007. - С.368.

3. Зубков С.В. Ассемблер для DOS, Windows и UNIX.

4. Кип Ирвина. Язык ассемблера для процессоров Intel = Assembly Language for Intel-Based Computers. - М.: Вильямс, 2005. - С.912.

5. http://ru. wikipedia.org

Размещено на Allbest.ru


Подобные документы

  • Програми, які виводять на екран характеристики комп'ютера. Розробка програми "Монітор використання ресурсів комп’ютера" на мові програмування ASM-86. Алгоритм програми та її реалізація. Системні вимоги, інструкція для користувача, лістинг програми.

    курсовая работа [22,2 K], добавлен 08.08.2009

  • Поняття комп'ютерної графіки та її значення в сучасній промисловості та рекламній діяльності. Можливості графічного пакета AutoCAD 2006 та особливості роботи з ним. Основні команди графічного редактора та режими їх роботи, сильні та слабкі сторони.

    курсовая работа [4,9 M], добавлен 16.11.2009

  • Сьогодні прийнято користуватися термінами "комп’ютерна графіка" і "комп’ютерна анімація". Поняття "комп’ютерна графіка" об’єднує всі види робот зі статичними зображеннями, "комп’ютерна анімація" має справи з зображеннями, які динамічно змінюються.

    дипломная работа [41,6 K], добавлен 11.06.2008

  • Функції бібліотеки анімації. Створення 3D моделей деталей та складального механізму для трактора. Настроювання параметрів відтворення та руху. Основні кроки анімації, їх додавання й видалення, копіювання, коментарі. Робота з компонентами та їх "рухами".

    отчет по практике [3,5 M], добавлен 20.07.2012

  • Розробка програми на мові програмування С++ в середовищі Borland C++ Builder, яка надає можливість відкривати певну програму в певний час або через певний час. Проектування блок-схеми та інтерфейсу користувача. Підключення бібліотек, опис змінних.

    дипломная работа [90,0 K], добавлен 21.01.2013

  • Проектування програми керування мікропроцесорним пристроєм світлової індикації на мові С та Assembler. Розробка алгоритму роботи програми, структурної та електричної принципових схем. Здійснення комп’ютерного моделювання для перевірки розроблених програм.

    курсовая работа [710,7 K], добавлен 04.12.2014

  • Розробка, налагоджування, тестування і документування програми на мові високого рівня С++ при рішенні на комп'ютері прикладної інженерної задачі. Використання принципів модульного і структурного програмування, зображення алгоритму у вигляді блок-схеми.

    курсовая работа [1,1 M], добавлен 07.08.2013

  • Програма на мові програмування С++. Аналіз стану технологій програмування та обґрунтування теми. Розробка програми виконання завдання, методу вирішення задачі. Робота з файлами, обробка числової інформації і робота з графікою. Розробка програми меню.

    курсовая работа [41,0 K], добавлен 17.02.2009

  • Основні розрахунки резисторів мікросхеми. Розробка алгоритму рішення задачі методом блок-схем. Характеристика та розробка програми на мові С++ з використанням принципів модульного і структурного програмування. План тестування і налагоджування програми.

    курсовая работа [2,9 M], добавлен 05.12.2012

  • Розробка програми на мові програмування С++ з використанням об’єктно-орієнтованого програмування, яка включає в себе роботу з файлами, класами, обробку числової інформації і роботу з графікою. Структура класів і об’єктів. Лістинг та алгоритм програми.

    курсовая работа [104,4 K], добавлен 14.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.