![](/user_photo/536_l6RD4.jpg)
- •1. Программы компьютерной графики 6
- •1. Программы компьютерной графики
- •1.1. Трехмерная векторная графика и ее реализация в 3d Studio max
- •Понятия о проекциях
- •Общие сведения о программе
- •1. Создание геометрии или моделирование
- •2. Источники света, съемочные камеры, материалы
- •3. Анимация
- •4. Визуализация
- •Интерфейс программы
- •Проверка знаний по разделу Интерфейс программы
- •Моделирование простых объектов
- •1. Построение объектов
- •2. Выделение объектов
- •3. Перемещение, вращение и изменение масштаба
- •4. Управление представлением объектов без изменения их геометрии
- •1.2. Растровая графика и ее реализация в программе Adobe Photoshop Характеристика программы
- •Интерфейс программы
- •Панель инструментов Инструменты группы Выделение области
- •Инструмент Перемещение выделенной области
- •Инструменты группы Лассо
- •Инструмент Волшебная палочка
- •Инструмент Масштаб
- •Инструмент Eyedropper
- •Рисующие инструменты
- •Заполняющие инструменты
- •Инструменты группы Текст (см. Рис. 11, слева направо: Текст, Границы символов, Вертикальный текст, Вертикальные границы символов).
- •Инструмент Кисть событий
- •Главное меню
- •Выделение и работа с выделенными областями
- •Главное меню, позиция Select
- •Быстрая маска
- •Работа с выделенными областями
- •Слои и каналы
- •1.3. Программа Macromedia Flash, ее назначение и характеристики Характеристика и интерфейс программы
- •ColorMixer– Установка цвета.
- •Library – библиотека
- •Properties– свойства
- •A Рис. 15. Панель Actions. Ctions– действия
- •Работа со слоями и с символами. Использование библиотеки
- •Создание и обработка текста
- •Кнопки, их создание и использование
- •Техника анимации
- •2. Программа 3d Studio max
- •2.1. Сцена на основе стандартных примитивов
- •Построение и компоновка сцены
- •Работа с материалами
- •Освещение сцены
- •Задание для самостоятельной работы
- •2.2. Работа со сплайнами
- •Моделирование вазы
- •Моделирование кружки
- •Моделирование книги
- •Задание для самостоятельной работы. Компоновка сцены из объектов, находящихся в разных файлах
- •2.3. Моделирование сложных объектов
- •Моделирование сверла
- •Моделирование патрона
- •Моделирование стойки
- •Моделирование ручки
- •Задания для самостоятельной работы
- •2.4. Моделирование объектов для игры пинг-понг Моделирование крышки стола
- •Моделирование мяча
- •Моделирование сетки из плетеного материала
- •Задание для самостоятельной работы
- •2.5. Основы анимации Анимация на основе опорных кадров
- •Анимация мяча с использованием преобразования движения
- •Управление промежуточными кадрами
- •Анимация с использованием пустышек (Dummy Objects)
- •Создание пустышки
- •Соединение мяча с пустышкой
- •Иерархия объектов в Schematic View
- •Анимация пустышки
- •Анимация удара по мячу
- •Задания для самостоятельной работы
- •Контроллеры
- •Подготовка сцены
- •Анимация с помощью контроллеров положения
- •Описание анимационных эффектов в виде математических выражений
- •Динамические эффекты в 3d Studio max
- •Сохранение анимированных сцен в файле формата avi
- •Задание для самостоятельной работы
- •2.6. Редактор материалов Основы создания материалов
- •Непрозрачные материалы с использованием тонирования Фонга
- •Прозрачные материалы с использованием тонирования Блинна
- •Материалы типов Multi/Sub-Object (Составной) и Raytrace (Трассируемый)
- •Задания для самостоятельной работы
- •Использование текстурных карт
- •Создание материала, имитирующего стекло
- •Создание материала, имитирующего природный камень
- •Создание материала, имитирующего песок
- •Создание сложного материала для верхней и нижней деталей песочных часов
- •Задание для самостоятельной работы
- •Имитация световых бликов
- •Тонкая настройка источников света
- •Работа с тенями
- •Добавление и настройка рисующего света
- •Задание для самостоятельной работы
- •2.8. Моделирование сложных поверхностей
- •Подготовка эскизов
- •Создание заготовки
- •Выдавливание поверхностей заготовки
- •Прорисовка носовой части
- •Моделирование передних сопел
- •Моделирование крыльев
- •Добавление сопел
- •Добавление двигателей и руля
- •Моделирование двигателей
- •Формирование поверхности двигателей
- •Обработка поверхности корпуса
- •Сглаживание поверхности кабины пилота.
- •Задания для самостоятельной работы
- •3. Программа Adobe Photoshop
- •3.1. Выделение и работа с выделенными областями Основные приемы выделения
- •Работа с выделением и связанные задачи
- •3. 2. Слои и каналы
- •Создание каналов и размытие
- •Раскраска
- •Задание для самостоятельной работы
- •3.3. Использование слоев и каналов для выделения сложных областей
- •3.4. Создание текстур Текстура «камуфляж»
- •Текстура «Потрескавшаяся земля»
- •Добавить два слоя
- •Задание для самостоятельной работы
- •3.5. Построение контура с закруглениями Способ 1. Размытие по Гауссу
- •Способ 2. Использование канала
- •Способ 3. Использование контура
- •Задание для самостоятельной работы
- •3.6. Градиентная заливка
- •Освоение техники градиентной заливки
- •Эффект жалюзи (сложная заливка)
- •3.7. Имитация движения
- •Использование инструмента Clone Tool (Штамп)
- •3.8. Создание сложного изображения Моделирование корпуса пульта
- •Моделирование вставки (см. Рис. 67, средняя часть)
- •Моделирование канавок
- •Завершающие шаги
- •3.9. Создание Веб - страниц с помощью Adobe PhotoShop Сохранение изображений для публикации в сети Интернет
- •О Рис. 73. Фрагментыбщие замечания
- •Фрагменты
- •Типы фрагментов
- •Создание фрагментов
- •Чтобы создать фрагмент на основе выделенияв программе ImageReady:
- •Получение карты на основе изображения
- •Создание картинной галереи
- •Использование модуля автоматизации
- •4. Программа Macromedia Flash
- •4.1. Основные приемы
- •4.2. Основы рисования
- •Задание
- •4.3. Работа с символами
- •Создание символов и экземпляров
- •Управление свойствами экземпляров
- •Редактирование символов
- •Вопросы для самоконтроля
- •4.4. Работа со слоями
- •Задание для самостоятельной работы
- •4.5. Создание и обработка текста
- •4.6. Техника анимации
- •4.7. Простой анимационный ролик
- •4.8. Движение по кривой. Использование символов Movie Clip
- •Задание для самостоятельной работы
- •4.9. Action Script. Обработка событий. Интерактивное управление роликом
- •Создание и использование кнопок
- •Создание простой кнопки
- •Управление клипом с помощью кнопок
- •Управление объектом с помощью кнопок
- •Использование текстовых полей для ввода управляющей информации
- •Задания для самостоятельной работы
- •4.10. Добавление звуковых эффектов
- •Добавление непрерывного звука
- •Добавление звуков событий
- •4.11. Решение логических задач на языке ActionScript
- •Проверка правильности значения, введенного пользователем
- •Головоломка Угадай число
- •If(isNaN(ans))gotoAndStop(1); /*если введено не число, вернемся в первый кадр*/
- •Специальный калькулятор
- •4.12. Публикация в Веб
- •5. Заключение
- •6. Программа курса
- •1. Введение Цели и задачи курса
- •2. Программное обеспечение
- •Тема 1. Введение
- •Тема 2. Основные понятия компьютерной графики
- •Тема 3. Построение трехмерных изображений средствами программы 3dStudioMax
- •Тема 4. Создание и редактирование растровых изображений с помощью программы AdobePhotoShop
- •Тема 5. Практика работы с программой MacromediaFlash
- •3. Практические занятия (компьютерный практикум) Тема 1. Работа с программой 3dStudioMax.
- •Тема 2. Работа с программой AdobePhotoShop
- •Тема 3. Работа с программой Macromedia Flash
- •4. Вопросы к экзамену
- •7. Приложения п1. Методические указания по выполнению курсовой работы Общие положения
- •Тематика курсовых работ
- •Задания по программе Adobe PhotoShop
- •Задания по программе 3d Studio Max
- •Задания по программе Macromedia Flash
- •Примерный план пояснительной записки:
- •П2. Краткое руководство по подготовке документов в текстовом редакторе Microsoft Word Общие сведения
- •Иллюстрации
- •Техника получения файлов изображений для вставки в документ
If(isNaN(ans))gotoAndStop(1); /*если введено не число, вернемся в первый кадр*/
else{
ans=parseInt(ans); /*Переведем введенный текст в целое число */
if ((ind._width+=10)>140)gotoAndStop(1); /*Увеличим ширину индикатора на 10. Если она больше 140, вернемся в первый кадр (больше 14 попыток).*/
else{
tryn++; /*Увеличим число попыток и выведем результат сравнения. */
if(ans<num) res="Ваше число меньше"
else if (ans>num) res="Ваше число больше"
else nextFrame(); //Если число угадано перейдем на третий кадр.
}
}
}
Выделить третий кадр и оформить его в соответствии с образцом.
С
tryNumb=tryn;
вязать с динамическим текстовым полем переменную tryNumb.Создать следующий обработчик события «Вход в кадр»:
Написать обработчик события Releaseдля кнопки:
on(release){
gotoAndStop(1);
}
Протестировать клип и убедиться, что все функции выполняются.
Сохранить файл на рабочем диске.
Специальный калькулятор
На многих сайтах коммерческих фирм имеются калькуляторы, назначение которых – помочь потенциальному покупателю, или заказчику подсчитать сумму покупки/заказа с учетом его индивидуальных скидок, или других особенностей. В данном упражнении будет разработан простой калькулятор подобного рода.
Предположим, что фирма «Рога и Копыта» продает следующие виды товаров: Рога, Копыта, Мундштуки, Гребешки по цене 10, 25, 100 и 20 за одну штуку соответственно. Оптовым покупателям предоставляется скидка: при суммарной стоимости покупки более 100 – 5%, а более 1000 – 10%. Требуется разработать калькулятор, подсчитывающий: стоимость покупки, размер скидки, сумму к оплате с учетом скидки. В калькуляторе будет использовано меню для выбора вида покупаемого товара.
Примерный образец выполненного задания находится по адресу:
http://www.master-teacher.org/compAnimo/examples/calculator.html.
Создать новый клип. Параметры: размеры 400х280 пикселей, цвет фона: #000066.
Добавить два слоя. Ввести имена слоев (снизу вверх): back, text, script.
Создать графический символ сorp, содержащий прямоугольник с закругленными углами. Установить толщину линии = 3 пикселя, цвет заливки #000066.
Поместить экземпляр символа сorpв слойback.
Разместить в слое textстатические текстовые поля в левой части калькулятора в соотвествии с образцом.
Создать кнопку. Имя символа: btn, внешний вид – прямоугольник с закругленными углами. Создать и отредактировать четыре кадра объекта, как рассмотрено выше.
Создать символ вида MovieClip. Имя символа:menuItem. Перейти в режим редактирования символа.
Установить на первый кадр символа menuItemэкземпляр символаbtn.
Установить поверх этого экземпляра динамическое текстовое поле. Связать с ним переменную txt. Ввести текст:Выберите.
Установить два экземпляра символа menuItem, как показано на рисунке. Присвоить имена: menuBtnиcalc.
Добавить 7 динамических текстовых полей (второй ряд слева в образце). Связать каждое из них с переменной. Имена переменных для полей (сверху вниз): name_, price, q, cost, bonus, bonusmoney, money.
Имена переменных не должны совпадать с резервированными словами языка программирования, поэтому в нашем случае для первой переменной выбрано имя name_ (со знаком подчеркивания).
Преобразовать тип третьего сверху текстового поля (связанного с переменной q), так, чтобы обеспечить возможность ввода информации пользователем.
Создать и отредактировать кнопку треугольной формы. Присвоить имя updown.
Поместить два экземпляра символа updown. Повернуть один из этих экземпляров на 180 градусов, как показано в образце.
Присвоить имена кнопкам: upBtnиdownBtn. Первая из них будет использоваться для увеличения значения переменнойqна 1, а вторая – для уменьшения его на 1.
Сделать активным первый кадр слоя scriptи открыть панельActions.
В современной версии программы Macromedia Flash можно использовать синтаксис обработчиков событий, связанных с кнопками и клипами в соответствии со следующим образцом:
имя_объекта.onPress=function()…
Можно также написать функцию, например, такую:
functionmyfunc()…
и затем назначить ее в качестве обработчика события для объекта:
имя_объекта.onPress=myfunc
Последняя из описанных возможностей удобна при динамическом создании объектов.
Ввести следующий текст скрипта:
calc.txt="Считать"; //В нижнем объекте поменяем текст
//Описания массивов:
texts=Array("Рога","Копыта","Мундштуки","Гребешки"); //Имена товаров
prices=Array("10","25","100","20"); //Цены
nt=texts.length; //Количество элементов в массивах
/************************
Создание меню
*************************/
menuBtn.onPress=function(){
//Обработчик события объекта menuBtn
// Начальные значения связанных переменных:
price=0;
q=1;
name_="";
calculate();
for(i=0;i<nt;i++){
//цикл создания динамических объектов меню:
duplicateMovieClip(menuBtn,"menu"+i,i);
//Создать объект (дубль)
// Имена объектов будут такими: menu0,menu1…
menu=eval("menu"+i); //Указатель на созданный объект
menu._y+=(menu._height+1)*(i+1);
//Переместить объект вниз
menu.txt=texts[i];
//Установить значение текста (из массива)
menu.onPress=menuPress;
//Связать объект с обработчиком
} //Конец цикла.
}//Конец функции onPress.
/******************
Обработчик события для элемента меню
******************/
function menuPress(){
n=this._name.charAt(4);
//this– указатель на объект, вызвавший событие.
// Его имя: menu0,menu1… Значитn=0,1…
//Значения связанных переменных:
name_=this.txt;
price=prices[n]; //из массива
for (i=0;i<nt;i++){
//цикл для удаления всех динамических объектов
menu=eval("menu"+i);
//получить указатель объекта по его имени
removeMovieClip(menu); // и удалить.
}// Конец цикла.
calculate(); //Пересчитать стоимость (обращение к функции).
}//Конец функции menuPress.
// Обработчик события для объекта calc:
calc.onPress=function(){
calculate(); //обращение к функции
}//Конец функции
// Функция подсчета стоимости покупки с учетом скидки
function calculate(){
if(isNaN(price)||isNaN(q)){
//Если цена, или количество – не число
price=0; //Установить их значения по умолчанию
q=0;
}
cost=price*q; //стоимость
bonus=0; //Скидка в процентах:
if(cost>100)bonus=5; //Если цена > 100, скидка = 5
if(cost>1000)bonus=10; // Если цена > 1000, скидка = 10
bonusmoney=bonus*cost/100; //Скидка в рублях
money=cost-bonusmoney; //Стоимость покупки
}//Конец функции calculate
//Обработчик события для объекта downBtn:
downBtn.onPress=function(){
if(q>0){ //Если количество больше нуля
q--; //То уменьшить его на 1
calculate() // и пересчитать.
}
} // Конец функции
//Обработчик события для объекта upBtn:
upBtn.onPress=function(){
q++; Увеличить количество заказанного товара на 1
calculate(); // и пересчитать.
} // Конец функции
Протестировать созданный клип, нажав Ctrl+Enter.
Сохранить результат на рабочем диске.