- •Конспект лекцій
- •Теми лекцій
- •Лекція 1: загальне введення в комп'ютерну графіку
- •Предмет і область застосування комп'ютерної графіки
- •Коротка історія
- •Технічні засоби підтримки комп'ютерної графіки
- •Питання й вправи
- •Лекція 2 сучасні апаратні засоби растрової графіки
- •2.1.Основні поняття
- •2.2. Пристрою уведення Сканери
- •Цифрові фотоапарати й відеокамери
- •2.3. Пристрою виводу Дисплеї
- •Дисплеї на елт
- •Жидкокристаллические дисплеї
- •Інші типи дисплеїв
- •Проектори
- •Принтери
- •Матричні принтери
- •Струминні принтери
- •Лазерні принтери
- •2.4. Архітектура графічної підсистеми пк Архітектура
- •Подання зображень
- •Програмний інтерфейс
- •Питання й вправи
- •Лекція 2. Колір у комп'ютерній графіці
- •Про природу світла й кольору
- •Колірний графік мко
- •Колірні моделі rgb і cmy
- •Колірні моделі hsv і hls
- •Простір cie Luv
- •Питання й вправи
- •Лекція 3. Геометричні перетворення
- •Системи координат і вектори
- •Рівняння прямій і площині
- •Аналітичне подання кривих і поверхонь
- •Перетинання лучачи із площиною й сферою
- •Інтерполяція функцій однієї й двох змінних
- •Матриці
- •Геометричні перетворення (перенос, масштабування, обертання)
- •Перехід в іншу систему координат
- •Завдання обертання щодо довільної осі
- •Питання й вправи
- •Лекція 4. Подання геометричної інформації
- •Геометричні примітиви
- •Полігональні моделі
- •Воксельні моделі
- •Поверхні вільних форм (функціональні моделі)
- •Системи координат: світового, об'єктна, спостерігача й екранна
- •Однорідні координати. Завдання геометричних перетворень в однорідних координатах за допомогою матриць
- •Питання й вправи
- •Лекція 6 алгоритми растеризаЦії відрізків, окружностей і еліпсів
- •6.1. Введення в растеризацію кривих
- •6.2.Зображення відрізка із цілочисловими координатами кінців
- •Цифровий диференціальний аналізатор
- •Алгоритм Брезенхема
- •Алгоритм Кастла-Пітвея
- •6.3. Зображення відрізка з нецілочисловими координатами кінців
- •6.4. Зображення окружностей
- •Алгоритм Брезенхема
- •6.5. Зображення еліпсів
- •Побудова по неявній функції
- •Побудова шляхом стиску окружності
- •Лекція 7 відсікання (кЛіпування) геометричних примітивів
- •Алгоритм Сазерленда-Коена відсікання прямокутною областю
- •Відсікання опуклим багатокутником
- •Кліпування багатокутників
- •Питання й вправи
- •Лекція 8 видалення невидимих поверхонь і ліній
- •Видалення нелицьових граней багатогранника Алгоритм Робертса
- •Алгоритм Варнока
- •Алгоритм Вейлера-Азертона
- •Метод z-Буфера
- •Методи пріоритетів (художника, що плаває обрію)
- •Алгоритми порядкового сканування для криволінійних поверхонь
- •Метод двійкової розбивки простору
- •Метод трасування променів
- •Питання й вправи
- •Лекція 9 проектування просторових сцен
- •Основні типи проекцій
- •Паралельні проекції
- •Центральні проекції
- •Математичний апарат
- •Ортогональні проекції
- •Косокутні проекції
- •Центральні проекції
- •Спеціальні картографічні проекції. Екзотичні проекції земної сфери
- •Стереографическая проекція
- •Гномоническая проекція
- •Ортографическая проекція
- •Проекції на циліндр
- •Проекція Меркатора
- •Проекції на багатогранник
- •Незвичайні проекції
- •Питання й вправи
- •Лекція 10 растрове перетворення графічних примітивів
- •Алгоритм Брезенхема растрової дискретизації відрізка
- •Алгоритми Брезенхема растрової дискретизації окружності й еліпса
- •Алгоритми заповнення областей
- •Лекція 11 зафарбовування. Рендеринг полігональних моделей
- •Проста модель висвітлення
- •Питання й вправи
- •Зафарбування граней Плоске зафарбовування
- •Зафарбування методом Гуро
- •Зафарбування методом Фонга
- •Більше складні моделі висвітлення
- •Усунення ступінчастості (антиэлайзинг)
- •Питання й вправи
- •Лекція 12 візуалізація просторових реалістичних сцен
- •Свето- Тіньовий аналіз
- •Метод излучательности
- •Глобальна модель висвітлення із трасуванням променів
- •Текстури
- •Питання й вправи
- •Лекція 13 алгоритми стиску зображень без втрат
- •13.1. Необхідність стиску зображень
- •13.2. Неіснування ідеального алгоритму
- •13.3. Алгоритми кодування довжини повторення (rle)
- •13.4. Словникові алгоритми
- •Алгоритм lz77
- •Алгоритм lzw
- •13.5. Алгоритми статистичного кодування
- •Алгоритм Хаффмена
- •13.6. Арифметичне кодування
- •Лекція 14 стиск зображень із втратами
- •14.1. Необхідність стиску із втратами
- •14.2. Оцінка втрат
- •14.3. Зображення як функція
- •Дискретне Перетворення Фур'є
- •Дискретне косинусное перетворення
- •14.4. Алгоритм стиску зображень jpeg
- •14.5. Вейвлет-Перетворення
- •14.6. Фрактальное стиск
- •Список літератури
- •Лекція 15 алгоритми стиску відео
- •Введення
- •Основні поняття
- •Вимоги додатків до алгоритму
- •Визначення вимог
- •Огляд стандартів
- •Базові технології стиску відео Опис алгоритму компресії
- •Загальна схема алгоритму
- •Використання векторів зсувів блоків
- •Можливості по распараллеливанию
- •Інші шляхи підвищення ступеня стиску
- •Порівняння стандартів
- •Питання для самоконтролю
- •Лекція 16 основи видавничої справи
- •1. Вибір формату
- •1.1. Використання стандартних форматів
- •1.1.1. Стандартні розміри по iso
- •2. Підготовка тексту
- •2.1.2. Редагування матеріалу
- •Перевірка фактичної вірогідності матеріалу
- •Установлення власника авторських прав і одержання дозволу на видання
- •Вступна частина
- •Авантитул
- •Заключна частина
- •2.2. Оформлення книги
- •2.2.1. Принципи виміру й термінологія
- •2.2.2. Характеристики шрифту Загальні характеристики
- •Класифікація шрифтів
- •2.3. Розробка дизайну тексту
- •2.3.1. Вибір шрифту
- •2.3.2. Вибір розмірів смуги набору, полів і шрифту
- •Формати октаво.
- •2.3.3. Стилі заголовків
- •Заголовки усередині тексту
- •Постійні й змінні колонтитули
- •Колонцифри
- •Допоміжний текст і підписи до ілюстрацій
- •Вступна й заключна частини
- •Складання підсумкової специфікації
- •2.3.4. Переноси
- •2.3.5. Розділові знаки
- •2.3.6. Зауваження по розмітці сторінки
- •2.4. Підрахунок сторінок тексту
- •2.4.1. Етап 1
- •Гарний матеріал
- •Поганий матеріал
- •2.4.2. Етап 2
- •2.4.3. Етап 3
- •Лекція 17 цифрове фото
- •1. Історія фотографії
- •2. Від плівки до цифрового фото
- •3. Умовна класифікація цифрових фотоапаратів
- •4. Сенсори цифрових фотоапаратів
- •Лекція 18 подання сайту
- •Зменшення швидкості руху
- •Створення кліпу зі зменшенням швидкості руху
- •Додавання змінної швидкості руху
- •Ініціалізація руху клацанням миші
- •Додавання сліду від руху об'єкта
- •Зникнення сліду
- •Підвищення ефективності
- •Покадровое рух
- •Постійна швидкість
- •Коливальний рух
- •Зміна розмірів у русі
- •Керування рухом
- •Ковзання
- •Використання порожніх фільмів
- •Реалізація підходів на практиці
- •Оглядач зображень
Покадровое рух
Почнемо з одержання руху з постійною швидкістю. Укажемо у фільмі, що необхідно перейти із крапки A у крапку B через певну кількість кадрів, переміщаючись із кожним кадром на те саме відстань. Цей тип руху корисний, коли потрібно, щоб щось відбувалося за певний проміжок часу. У цьому русі відсутня та плавність, що ви спостерігали в методі зменшення швидкості, однак тут всі набагато простіше: нам відомо, що об'єкт досягне своєї мети після певної кількості кадрів. Даний рух виглядає більш солідно.
Відстань, на яке переміщається об'єкт, однаково у всіх кадрах. Пройдена відстань дорівнює всій відстані, діленому на число кадрів, у цьому випадку, 200 пикселей ділиться на 5 кадрів і виходить 40 пикселей на кожний кадр.
Постійна швидкість
Ви побачите, що в кожному кадрі переборюється те саме відстань. Для початку руху необхідно знати, наскільки повинен переміститися фільм, і протягом скількох кадрів це повинне відбутися. Обчислення відстані на кадр містить у собі лише розподіл відстані на загальне число кадрів.
Проробіть ті ж кроки, що й у попередньому прикладі, щоб приготуватися до додавання ActionScript у панель Actions.
Отже, перейдемо до програми. Нам потрібно привласнити дію нашому фільму, за допомогою якого в кожному кадрі буде виявлятися місце розташування покажчика миші, після чого фільм буде переміщатися в цю крапку. В Flash 5 це можна було б легко зробити за допомогою виділення фільму й присвоєння йому onClipEvent (enterFrame).
Насамперед, ми введемо змінну для зберігання числа кадрів руху. Потім ми встановимо функцію onMouseDown для ball_mc. Ця функція буде обчислювати загальну відстань по осях x і y і потім ділити це число на значення змінної кадрів для з'ясування відстані, на яке буде переміщатися фільм у кожному кадрі.
Ми також уведемо змінну-лічильник frameNum, що буде використовуватися для визначення того, на яку відстань перемістився фільм - ми будемо додавати до її значення одиницю в кожному кадрі фільму, і коли вона буде дорівнює значенню змінної кадрів, рух буде припинятися.
this.frames = 30;
ball_mc.onMouseDown = function() {
this.frameNum = 0;
// calculate how far to move each frame on the x and в axes
this.xStep = (this._parent._ xmouse-this._x) /this._parent.frames ;
this.yStep = (this._parent._ ymouse-this._y) /this._parent.frames;
this.onEnterFrame = moveToMouse;
};
Далі нам потрібно буде написати функцію moveToMouse, що буде спочатку додавати значення xStep і yStep, додавати дублікат і потім перевіряти, чи досяг він своєї кінцевої крапки:
moveToMouse = function () {
// add the step value each frame
this._x += this.xStep;
this._y += this.yStep;
this.duplicate();
this.checkTime();
};
Функції дубліката й зменшення ідентичні тим, які ми тільки що використовували.
Останнім додаванням у наш код буде функція checkTime, що додає одиницю до значення змінної frameNum і потім припиняє рух по досягненні кінцевої крапки, тобто числа кадрів, зазначеного нами на початку:
ball_mc.checkTime = function() {
this.frameNum++;
if (this.frameNum == this._parent.frames) {
delete this.onEnterFrame;
}
};
Збережете фільм у файлі frame based motion.fla і запустите його. При виконанні цього коду ви побачите, що дублікати створюються безупинно, і фільм безпосередньо досягає кінцевої крапки.
Якість руху в цьому прикладі сильно відрізняється від того, котре ми розглянемо нижче. Давайте ступнемо далі й розберемо прискорення й коливання в нескладних рухах.
