лабораторный практикум / Чебоксары: Изд-во Чуваш.ун

advertisement
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ
РОССИЙСКОЙ ФЕДЕРАЦИИ
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
Федеральное государственное образовательное учреждение высшего
профессионального образования
«Чувашский государственный университет имени И.Н.Ульянова»
Компьютерная графика
Лабораторный практикум
Чебоксары 2006
УДК 004.92 (075.8)
Авторы-составители:
В. Н. Пичугин, Р. В. Фёдоров
Рецензенты: д-р физ.-мат.наук, профессор И.Т. Артемьев,
канд. техн. наук, доцент В.В. Глазьев
Компьютерная графика: Лабораторный практикум / Сост.
В. Н. Пичугин, Р.В. Федоров; Чуваш. ун-т. Чебоксары, 2006, 70
с.
Содержатся основные теоретические положения по основам
компьютерной графики, а также практические сведения и
методические указания, необходимые для выполнения
лабораторных работ.
Для студентов II-III курсов факультета информатики и
вычислительной техники.
Утверждено
Редакционно-издательским
советом
университета
Ответственный редактор: к. т. н, профессор Е.Г. Егоров
УДК 004.92 (075.8)
 В.Н.Пичугин,
Р.В.Фёдоров,
составление, 2006
2
Введение
Компьютерная графика – область информатики, объектом
которой являются геометрические объекты: их информационные
модели, визуализация, анимация.
Цель дисциплины – изучить правильное изображение
геометрических объектов на компьютере.
Геометрические объекты – это абстрактные объекты, т.е.
такие, геометрия которых описывается математическими и
алгоритмическими методами: линии, фигуры, трехмерные тела.
Однако, в отличие от аналитической геометрии, в компьютерной
графике объекты характеризуются и различными физическими
атрибутами. В простейшем случае – это цвет и яркость. Для
трехмерных объектов могут использоваться и другие
фотометрические параметры, позволяющие получить более
реалистичные изображения:
 отражательная способность;
 степень зеркальности;
 текстура поверхности.
Помимо
абстрактных
геометрических
объектов
в
графических программах используются и обрабатываются
готовые изображения:
 фотоизображения;
 видеоинформация;
 синтезированные изображения.
Задачами изучения компьютерной графики являются:
 интерактивные
графические
системы:
графические
редакторы, САПР, мультимедиа-системы, системы анимации;
 средства иллюстрации в прикладных программах, научных,
моделирующих, контролирующих, проектных и т.п.;
 информационные программы.
Выполнение лабораторных работ предполагает четыре
этапа: подготовка, непосредственно выполнение, оформление
отчета и защита работы.
Подготовка к работе происходит в часы самостоятельных
занятий и заключается в следующем:
1) изучении описания работы и других теоретических сведений,
касающихся тематики выполняемой работы;
3
2) анализе задач и при необходимости их формализации;
3) разработке алгоритмов;
4) программной реализации.
В результате подготовки к работе оформляется
соответствующий раздел отчета. Если подготовка не выполнена,
студент не допускается к выполнению лабораторной работы.
Выполнение работы заключается в вводе текстов программ,
их трансляции и отладке на тестовых примерах, а также в
проведении
экспериментальных
исследований.
Порядок
выполнения приводится в описании каждой работы. Выполнение работы подтверждается подписью преподавателя в отчете, что означает допуск к защите работы.
Отчет о работе должен содержать:
1) титульный лист;
2) цель работы;
3) информацию в соответствии с подготовкой к работе;
4) результаты выполнения работы (результаты решения задач,
графики, рисунки и т. д.);
5) выводы по работе, отражающие анализ результатов и
предпочтительные области применения;
6) тексты программ в виде текстовых файлов.
Защита работы заключается в опросе студента преподавателем. Преподаватель вправе задавать вопросы по всем разделам отчета: теоретической части. По итогам опроса решается
вопрос о защите лабораторной работы.
4
Лабораторная работа 1
Элементы двухмерной компьютерной графики
в Turbo Pascal
Цель работы: изучить технологии, возможности, алгоритмы
и средства двухмерной компьютерной графики: графические
средства Turbo Pascal.
Исходные теоретические сведения.
Модуль Graph.
Этот модуль реализует полную библиотеку из более чем 50
графических программ, начиная от высокоуровневых, таких как
SetViewPort, Circle, Bar30 или DrawPoly, до биториентированных,
таких
как
GetImage
и
PutImage.
Поддерживаются несколько типов линий и стилей заполнения,
существует несколько типов шрифтов, которые можно
увеличивать, выравнивать и ориентировать вертикально или
горизонтально.
Для того чтобы компилировать программу, которая
использует модуль Graph, вам требуется ваш исходный код,
компилятор и доступ к стандартным модулям в Turbo.tpl и
модулю Graph в Graph.tpu. Для выполнения программы, которая
использует модуль Graph, необходим один или более
графических драйверов (.BGI файлы). Если программа
использует штриховые (векторные) шрифты, потребуется один
или более файлов шрифтов (.CHR).
Драйверы.
Графические
драйверы
поддерживают
следующие
графические адаптеры (и полностью совместимые с ними):
CGA.BGI
EGAVGA.BGI
HERC.BGI
ATT.BGI
PC3270.BGI
IBM8514.BGI
драйвер для IBM CGA, MCGA
драйвер для IBM EGA, VGA
драйвер для монохромного Hercules
драйвер для AT&T 8300 (400 строк)
драйвер для IBM 3270 PC
драйвер для IBM 8514
Каждый драйвер содержит код и данные, хранящиеся в
отдельном файле. Во время выполнения процедура InitGraph
5
определяет
графическое
устройство,
загружает
и
инициализирует соответствующий графический драйвер,
переводит систему в графический режим и возвращает
управление вызывающей программе. Процедура CloseGraph
выгружает драйвер из памяти и восстанавливает предыдущий
видеорежим. Переключиться между графическим и текстовым
режимами можно, используя RestoreCrtMode и SetGraphMode.
Для того чтобы загрузить собственный драйвер или включить
его в .EXE, используйте RegisterBGIDriver.
Координатная система.
Верхний левый угол графического экрана определен как
(0,0). Значение X (или колонки) увеличивается вправо. Значение
Y (или строки) увеличивается вниз. Так, в режиме 320x200 на
адаптере CGA экранные координаты каждого из четырех углов
будут выглядеть как на рис. 1.
Текущий указатель.
Многие графические системы поддерживают понятие
текущего указателя (CP – Current Pointer). СР подобен понятию
курсора в текстовом режиме, но в отличие от курсора текущий
указатель не виден.
Write ('ABC');
В текстовом режиме оператор Write будет помещать курсор
в колонку непосредственно после символа С. Если С помещен в
колонку 80, то курсор передвинется в первую колонку
следующей строки. Если С помещен в 80-ю колонку 25-й
строки, то весь экран сдвинется на одну строку вверх и курсор
будет в первой колонке 25-й строки.
Рис.1.
6
MoveTo (0,0);
LineTo (20,20);
В графическом режиме оператор LineTo поместит текущий
указатель в точку (20,20). Выведенная линия будет отсечена в
текущем окне, если отсечение включено. Заметим, что текущий
указатель никогда не отсекается.
Команда MoveTo эквивалентна GotoXY. Она используется
только для перемещения текущего указателя. Следующие
команды перемещают текущий указатель: InutGraph, MoveTo,
MoveRel,
LineTo,
LineRel,
OutText,
SetGraphMode,
GraphDefaults,
ClearDevice,
SetViewPort,
ClearViewPort
(последние пять команд перемещают текущий указатель в точку
(0,0)).
Текст.
Побитовый шрифт с матрицей 8х8 и несколько векторных
шрифтов определены для вывода текста в графическом режиме.
Символ побитового шрифта определен в матрице 8х8 пикселов
(точек). Векторный шрифт определен серией отрезков, которые
указывают графической системе, как рисовать шрифт.
Удобство использования векторного шрифта проявляется,
когда вы начинаете рисовать большие символы. Поскольку
векторный шрифт определен отрезками, он сохраняет хорошее
разрешение и качество при увеличении.
Когда
побитовый
шрифт
увеличивается,
матрица
умножается на коэффициент масштабирования, и как только
коэффициент
масштабирования
становится
большим,
разрешение символов становится грубым. Для небольших
символов побитовый шрифт будет эффективен, но для большого
текста необходимо использовать векторный шрифт.
Выравнивание графического текста управляется процедурой
SetTextJustify. Масштабирование и выбор шрифта производится
процедурой SetTextStyle. Графический текст выводится вызовом
процедуры OutText или OutTextXY. Запрос текущих установок
текста производится процедурой GetTextSettings. Размер
штрихового шрифта может быть определен процедурой
SetUserCharSize.
Каждый штриховой шрифт хранится в отдельном файле с
расширением .CHR (TRIP, SANS, LITT, GOTH). Файлы
7
шрифтов могут быть загружены с диска автоматически модулем
Graph во время выполнения или они могут быть включены в
пользовательскую
программу
или
загружены
ей
и
"зарегистрированы" модулем Graph.
Специальная
программа
Binobj.exe
обеспечивает
преобразование файла шрифтов (или любого двоичного файла
данных, который соответствует ему) в файл .OBJ, который
может быть включен в модуль или программу при помощи
директивы компилятора {$L}. Это позволяет программе иметь
все файлы шрифтов, встроенные в .EXE файл. Аналогично
можно включать в .EXE файл и драйверы всех графических
адаптеров.
Фигуры и стили.
Существует большое число программ для рисования и
заполнения фигур, включая точки, линии, окружности, дуги,
эллипсы, сектора, прямоугольники, многоугольники, полосы и
3-мерные полосы. Использование SetLineStyle позволяет
управлять толщиной линий и типом, например, сплошная,
точками (или тип, определенный вами).
Использование SetFillStyle и SetFillPartern, FillPoly и
FloodPoly позволяет заполнять многоугольник штриховой
линией или другим стилем.
Окна и битовые образы.
Процедура SetViewPort заставляет все выводные команды
работать относительно прямоугольной области экрана (окна или
поля вывода). Точки, линии, фигуры – весь графический вывод –
зависит от определения окна (его координат) до тех пор, пока
окно не будет изменено. Другие программы обеспечивают
очистку окна и чтение текущего определения окна. Если
отсечение активно, весь графический вывод отсекается по
границам текущего окна. Заметим, что текущий указатель
никогда не отсекается.
GetPixel и PutPixel обеспечивают чтение пикселов. GetImage
и PutImage могут быть использованы для сохранения и вывода
на экран прямоугольной области экрана. Они обеспечивают
полный набор битовых операций (копирование, or, and, not).
8
Страницы и цвет.
Существует ряд других процедур, включая поддержку
нескольких графических страниц (только для EGA, VGA,
Hercules; особенно полезны для мультипликации) –
SetActivePage, SetVisualPage, палитры - SetPalette, цвета SetColor и т.п.
Обработка ошибок.
Внутренние ошибки в модуле Graph возвращаются
функцией GraphResult. GraphResult возвращает код ошибки
последней графической операции.
Следующие процедуры устанавливают GraphResult:
Bar
ImageSize
SetFillPattern
Bar3D
InitGraph
SetFillStyle
ClearViewPort
InstallUserDriver
SetGraphBufSize
CloseGraph
InstallUserFont
SetGaphMode
DelectGraph
PieSlice
SetLineStyle
DrawPoly
RegisterBGIDriver SetPalette
FillPoly
RegisterBGIFont
SetTextJustify
FloodFill
SetAllPallete
SetTextStyle
GetGraphMode
Заметим, что GraphResult устанавливается в ноль после его
вызова. Следовательно, программист должен запомнить
значение GraphResult во временной переменной, а затем
проверять его.
Пример простой программы:
Program GraphText;
Uses Graph;
Var GraphDriver;
GraphMode;
ErrorCode : integer;
Begin
GraphDriver:=Detect;
InitGraph(GraphDriver, GraphMode, 'C:\TP\BGI');
ErrorCode:=GraphResult;
If ErrorCode <> grOK then
{ошибка}
Begin
Writeln('Graphhics error: ' , GraphErrorMsg(ErrorCode));
Writeln('Program aborted …');
9
Halt(1);
End;
Rectangle(0,0, GetMaxX, GetMaxY); {рисовать
прямоугольник}
SetTextJustify(CenterText, CenterText); {центрировать
текст}
SetTextStyle(DefaultFont, HorizDir, 3);
OutTextXY(GetMaxX div 2, GetMaxY div 2, ' Borland
Graphics
Interface (BGI)');
Readln;
CloseGraph;
End.
{GraphTest}
Программа начинается с вызова InitGraph, который
автоматически
определяет
аппаратуру
и
загружает
соответствующий графический драйвер (из каталога С: \ ТР \
BGI). Если графическое устройство не распознано или во время
инициализации произошла ошибка, выдается сообщение об
ошибке
и
программа
завершается.
Иначе
чертится
прямоугольник по краю экрана и в центре экрана выводится
текст.
Примечание: адаптеры AT&T 400 и IBM 8514 нельзя
распознать автоматически. Для использования этих драйверов
вам нужно отменить автообнаружение и передать в InitGraph код
драйвера и правильный код графического режима.
Вызов CloseGraph восстанавливает видеорежим, который
был установлен до вызова InitGraph и освобождает память,
используемую графическим драйвером.
Пользовательские программы управления кучей.
Модуль Graph использует две программы управления кучей:
GraphGetMem и GraphFreeMem. GraphGetMem распределяет
память для драйверов графического устройства, шрифтов и
сканирующего буфера. GraphGetMem освобождает память для
драйвера.
Стандартные процедуры имеют вид:
Procedure GraphGetMem (var P: Pointer; Size: Word);
Procedure GraphFreeMem (var P: Pointer; Size: Word).
10
Модуль Graph определяет два указателя для ссылки на эти
стандартные программы. Эти указатели определены так:
Var GrapGetMemPtr : Pointer ; {указатель на программу
распределения памяти}
GraphFreeMemPtr : Pointer ; {указатель на программу
освобождения памяти}
Программы управления кучей, ссылки на которые хранятся
в GraphGetMemPrt и GraphFreeMemPrt, вызываются модулем
Graph для распределения и освобождения памяти для:
 многоцелевого буфера, размер которого может быть
установлен программой SetGraphBufSize (по умолчанию 4
Кбайта);
 драйвера устройства, загружаемого InitGraph (*.BGI файлы);
 файла штрихового шрифта, загружаемого SetTextStyle
(*.CHR файлы).
Графический буфер всегда распределяется в куче. Драйвер
устройства распределяется в куче, если только ваша программа
не загрузила его и не установила связь при помощи
RegisterBGIdriver; и файл шрифтов распределяется в куче, когда
вы выбираете штриховой шрифт, используя SetTextStyle, если
только ваша программа его не загрузила или не связана,
используя вызов RegisterBGIfont.
При инициализации модуля Graph указатели активизируют
стандартные программы распределения и освобождения памяти,
которые определены в разделе implementation модуля Graph. Вы
можете вставить ваши программы управления памятью
присвоением этим указателям адресов этих программ.
Программы должны иметь такой же список параметров, что и
стандартные программы, т.е. должны быть объявлены как
дальние (far).
Варианты заданий
1. Разработать программу для построения графиков одной из
выбранных функций от одной переменной с изменяемыми (+\-)
по вертикали и горизонтали масштабами и центром координат.
2. Изобразить на экране монитора окружность с изменяемыми
радиусом (+\-), расположением (стрелками) и величиной сжатия
(растяжения).
11
3. Нарисовать гистограмму падающих шариков.
4. Сгенерировать звездное небо. Продемонстрировать вечер,
ночь, утро: звезды загораются-мерцают-гаснут.
5. Реализовать аналоговые часы с часовой, минутной,
секундной стрелками. Настраиваемые цвета и размеры,
поддержка любого адаптера.
6. Нарисовать график сердцебиения человека (осциллограмма)
с изменяемым пульсом (+\-).
7. Изобразить табличный редактор с мигающим курсором.
Размер таблицы, шапка и поля в массивах. Настраиваемые цвета,
поддержка любого адаптера.
8. Ввод и редактирование строки с мигающим курсором.
9. Нарисовать произвольное число квадратов, расположенных
внутри друг друга (с повтором).
10. Вывести на экран прямоугольниками все возможные цвета
(палитру) для режимов CGA, EGA, VGA.
11. Нарисовать биоритмы (задана дата и время рождения,
построить графики разными цветами).
12. Нарисовать карту звездного неба (реальные созвездия,
изменяемый масштаб, скроллинг).
Пример выполнения одного из вариантов заданий
Используя стандартные средства языка программирования
Turbo Pascal вывести графически на экран беспорядочное число
звезд. Число звезд в программе корректируется циклом until key
pressed. Цвет звезд и размер изменяются также в цикле.
uses crt,graph;
var
x1,x2,x3,x4,x5:integer;
y1,y2,y3,y4,y5:integer;
ax,bx,cx,dx,ex:integer;
ay,by,cy,dy,ey:integer;
gm,gt,i,k,m,p:integer;
begin
clrscr;
randomize;
gm:=detect;
gt:=0;
12
initgraph(gm,gt,'c:\turbo\bgi');
x1:=78; y1:=128; ax:=76; ay:=125;
x2:=72; y2:=126; bx:=74; by:=123;
x3:=72; y3:=120; cx:=76; cy:=121;
x4:=78; y4:=118; dx:=78; dy:=122;
x5:=82; y5:=123; ex:=78; ey:=124;
i:=1;
repeat
m:=m+1; i:=m mod 3;
setcolor(m);
k:=random(1000)-300; p:=random(1000)-300;
line(x1*i+k,y1*i+p,ax*i+k,ay*i+p);
line(x1*i+k,y1*i+p,ex*i+k,ey*i+p);
line(x2*i+k,y2*i+p,ax*i+k,ay*i+p);
line(x2*i+k,y2*i+p,bx*i+k,by*i+p);
line(x3*i+k,y3*i+p,bx*i+k,by*i+p);
line(x3*i+k,y3*i+p,cx*i+k,cy*i+p);
line(x4*i+k,y4*i+p,cx*i+k,cy*i+p);
line(x4*i+k,y4*i+p,dx*i+k,dy*i+p);
line(x5*i+k,y5*i+p,dx*i+k,dy*i+p);
line(x5*i+k,y5*i+p,ex*i+k,ey*i+p);
delay(5000);
until keypressed;
end.
Рис. 1. Изображение звездного неба.
13
Лабораторная работа 2
Элементы трехмерной компьютерной графики
в Turbo Pascal
Цель работы: изучить технологии, возможности, алгоритмы
и средства трехмерной компьютерной графики: графические
средства Turbo Pascal.
Исходные теоретические сведения.
Однородные координаты точки на плоскости.
Предположим, что на плоскости введена прямолинейная
координатная система. Тогда каждой точке М ставится в
соответствие упорядоченная пара чисел х, у ее координат. Вводя
на плоскости еще одну прямолинейную систему координат, мы
ставим в соответствие той же точке М другую пару чисел х*, у*.
Переход от одной прямолинейной системы координат на
плоскости к другой прямолинейной системе координат
описывается следующими соотношениями:
 *    y  
y *    y  
где  ,  ,  ,  ,  ,  - произвольные числа, но
(*)
 
0
 
Формулы (*) можно рассматривать двояко:
 сохраняется точка и изменяется координатная система произвольная точка М остается той же, изменяются лишь ее
координаты (х, у)  (х*, у*).
 изменяется точка и сохраняется система координат формулы (*) задают отображение, переводящее произвольную
точку М (х, у) в точку М(х*, у*), координаты которой
определены в той же координатной системе.
В дальнейшем будем рассматривать формулы (*) во втором
смысле.
Как доказывается в курсе аналитической геометрии, любое
преобразование вида (*) всегда можно представить как
последовательное выполнение (суперпозицию) простейших
преобразований - поворота относительно начала координат,
деформации вдоль координатных осей, отражения относительно
14
координатных осей и параллельного переноса в направлении
некоторого вектора. Первые три преобразования удобно описать
в виде матриц –
sin 

,деформацияcos 
0
1 0
отражение (относительно Х) –
0 1
поворот -
cos 
 sin 
0

Однако для удобства алгоритмизации задач, связанных с
преобразованиями координат, необходимо охватить матричным
подходом все четыре простейших преобразования. Для этого
происходит переход к описанию произвольной точки плоскости
тройкой чисел.
Пусть М - произвольная точка плоскости с координатами х и
у. Однородными координатами точки называется тройка
одновременно не равных нулю чисел
x 1 , x 2 , x 3 , если
выполнены следующие соотношения
x1
x
 x, 2  y .
x3
x3
В компьютерной графике однородные координаты вводятся
обычно так : точке М(х, у) ставится в соответствие точка М'(х, у,
1).
Соответственно все элементарные преобразования могут
быть в однородных координатах выражены матрицами:
 cos  sin  0


вращение (rotation) [R]=  sin  cos  0


 0
0
1
 0 0


деформация (dilatation) [D]= 0  0


 0 0 1
15
1 0 0


отражение (reflection) [M]= 0  1 0


0 0 1
 1 0 0


параллельный перенос (translation) [T] = 0 1 0


  1
Аффинные преобразования в пространстве.
Обратимся теперь к трехмерному случаю и начнем с
введения однородных координат. Поступая аналогично тому ,
как это было сделано для размерности два, заменим тройку
(х,у,z), задающую точку в пространстве на четверку (х,у,z,1).
Предложенный переход дает возможность воспользоваться
матричной записью для трехмерных задач. Любое аффинное
преобразование в трехмерном пространстве может быть
представлено в виде суперпозиции вращений, деформаций,
отражений и переносов. Поэтому достаточно подробно описать
матрицы только этих преобразований. Матрицы вращения в
пространстве:
вращение вокруг оси абсцисс на угол 
0
1
0 cos 
[R x ]= 
0  sin 

0
0
0
sin 
cos 
0
0
0
;
0

1
вращение вокруг оси ординат на угол 
cos
 0
[R y ]= 
 sin 

 0
0  sin 
1
0
0 cos
0
0
0
;
0

1
0
вращение вокруг оси аппликат на угол 
16
 cos 
 sin 
[R z ]= 
 0

 0
sin 
cos 
0
0
0 0
0 0
.
1 0

0 1
Матрица деформации:

0
[D]= 
0

0
0 0
 0 0
,
0  0

0 0 1
0
где
 >0,
 >0,
 >0
–
коэффициенты растяжения(сжатия) соответственно вдоль осей
Х, У, Z.
Матрицы отражения:
отражение относительно плоскости ху
1
0
[M z ]= 
0

0
0 0 0
1 0 0
0  1 0

0 0 1
отражение относительно плоскости уz
 1
0
[M x ]= 
0

0
0 0 0
1 0 0
0 1 0

0 0 1
отражение относительно плоскости zх
1 0
0  1
[M y ]= 
0 0

0 0
0 0
0 0
1 0

0 1
17
Матрица переноса:
1
0
[T]= 
0


0 0
0 0
, где (  ,  ,
1 0

  1
0
1
0
) - вектор переноса.
При помощи этих матриц можно подвергать простейшим
преобразованиям любые плоские и пространственные фигуры.
Например, выпуклый многогранник, однозначно заданный
массивом своих вершин. Подействовав на этот массив некоторой
матрицей преобразования, получаем новый массив задающий
многогранник - образ исходного.
Преобразования проекции.
В компьютерной графике используются два основных вида
проектирования - параллельное и центральное (перспективное)
(рис. 1).
а
б
Рис .1. Виды проектирования: а – параллельное,
б – центральное (перспективное).
Для описания преобразований проектирования удобно
использовать матрицы и однородные координаты.
Примером параллельной проекции может служить
ортографическая проекция - картинная плоскость совпадает с
одной из координатных плоскостей или параллельна ей.
Матрица проектирования вдоль оси Х на плоскость yz
 0 0 0 0
 0 1 0 0
;
[P x ]= 
 0 0 1 0


  0 0 1
18
матрица проектирования вдоль оси Y на плоскость xz
1
0
[P y ]= 
0

0
0 0 0
0 0 0
;
0 1 0

q 0 1
матрица проектирования вдоль оси Z на плоскость xy
[P z
1
0
]= 
0

0
0 0 0
1 0 0
.
0 0 0

0 r 1
При выводе изображений на экран для получения
эффектной картинки изменяют точку зрения посредством
поворота объекта на угол  относительно оси Y, поворота
объекта на угол  относительно оси X и параллельного
проектирования на плоскость Z=0. Матрица результирующего
преобразования будет иметь вид
cos
 0
[M]= 
 sin 

 0
sin  cos
cos 
 sin  cos
0
0 0
0 0
.
0 0

0 1
Приведем пример матрицы, задающей следующее
преобразование: поворот на 30° относительно оси Y, поворот на
15 ° относительно оси X и проекция на плоскость Z=0
0.866 0.129
 0
0.966
[M]= 
 0.5  0.244

0
 0
0 0
0 0
.
0 0

0 1
Рассмотрим центральные (перспективные) проекции.
Предположим, что центр проектирования находится на оси Z,
С(0,0,с), плоскость проектирования совпадает с плоскостью Z=0.
19
Матрица соответствующего преобразования имеет вид
1
0
[Q]= 
0

0
0 
1 0 0 
1 .
0 1  
с
0 0 1 
0 0
Замечательным является то, что пучок прямых,
параллельных оси
Z, переходит посредством этого
преобразования в пучок прямых сходящихся к некоторому
центру, - точке Т с (0,0,-с,1). Эта точка называется точкой схода.
Выделяют
так
называемые
главные
точки
схода,
соответствующие пучкам прямых, параллельных координатным
осям.
Для преобразования с матрицей Q существует только одна
главная точка схода. В общем случае, когда оси координатной
системы не параллельны плоскости экрана, таких точек три.
Матрица соответствующего преобразования выглядит так:

1

0
[Q 123 ]= 
0

0

1
0 0  
a
1
1 0  
b .
1
0 1  
c
0 0 1 
Проекции куба со сторонами, параллельными координатным
осям, с одной и с двумя точками схода (рис. 2).
Рис. 2. Проекции куба.
20
Удаление невидимых линий и поверхностей.
Задача удаления невидимых линий и поверхностей является
одной из наиболее сложных в машинной графике. Алгоритмы
удаления невидимых линий и поверхностей служат для
определения линий ребер , поверхностей или объемов, которые
видимы или невидимы для наблюдателя, находящегося в
заданной точке пространства. Удаление невидимых линий, ребер
, поверхностей изображено на рис.3.
Рис.3. Процесс удаления невидимых линий и поверхностей.
Алгоритмы удаления невидимых линий и поверхностей
можно классифицировать по способу выбора системы
координат, или пространства, в котором они работают.
Алгоритмы объектного пространства имеют дело с физической
системой координат, в которой описаны эти объекты.
Алгоритмы пространства изображения имеют дело с системой
координат того экрана, на котором объекты визуализуются.
Алгоритмы, использующие список приоритетов, работают
попеременно в обеих упомянутых системах координат.
Варианты заданий
1. Создайте конус с интерактивным заданием местоположения
и вращением (если возможно – удалите невидимые линии и
поверхности).
2. Создайте
пирамиду
с
интерактивным
заданием
местоположения и вращением (если возможно – удалите
невидимые линии и поверхности).
3. Создайте призму и куб с интерактивным заданием
местоположения и вращением (удалите невидимые линии и
поверхности).
21
4. Создайте тор и сферу с интерактивным заданием
местоположения и вращением (удалите невидимые линии и
поверхности).
5. Создайте
цилиндр
с
интерактивным
заданием
местоположения и вращением (удалите невидимые линии и
поверхности).
6. Создайте мячик, падающий с заданной высоты, несколько
раз отскакивающий и замирающий на полу.
7. Создайте игру бумеранг (Castle) и задайте скорость и угол
броска.
8. Создайте модель Солнечной системы.
9. Создайте глобус с контурами континентов и вращением.
10. Создайте круги на воде от капель с интерференцией (256
цветов).
11. Создайте имитацию движения поезда с помощью
перемещения шатуна и шпал (вид сбоку). Скорость изменяется
(+\-).
12. Создайте машину с вращающимися колесами (вид сбоку).
Скорость изменяется (+\-)
Пример выполнения одного из вариантов заданий
По экрану ползет змея; направление оперативно меняется
стрелками.
uses
graph,crt;
var
rr:array [1..640] of integer;
cc:array [1..480] of integer;
a:char;
p,r,c,s:integer;
cmove,rmove:integer;
procedure initgr;
(*инициализация графического режима*)
var
grdevice,grmode:integer;
begin
grdevice:=detect;
initgraph(grdevice,grmode,'z:\pascal\bgi');
22
if graphresult<>grok then halt(1); (*ошибка*)
end;
procedure init;
(*инициализация графического поля*)
var
i:integer;
begin
(*р – длина змеи в пикселях
cmove, rmove – направление змеи*)
r:=20;
c:=20;
p:=5;
s:=60;
cmove:=0;
rmove:=1;
for i:=1 to 640 do
begin
rr[i]:=-1;
end;
setbkcolor(black);
setcolor(green);
cleardevice;
end;
procedure worm;
(*построение змеи*)
begin
if rr[p]<>-1 then putpixel(rr[p],cc[p],black);
r:=r+rmove;
c:=c+cmove;
if (r>640) or (r<1) or (c>480) or (c<0) then halt(1);
rr[p]:=r;
cc[p]:=c;
putpixel(rr[p],cc[p],green);
inc(p);
if p>s then p:=1;
end;
begin
initgr;
23
init;
repeat
delay(300);
if keypressed then a:=readkey;
if a='K' then
begin
rmove:=-1;
cmove:=0;
end;
if a='M' then
begin
rmove:=1;
cmove:=0;
end;
if a='H' then
begin
rmove:=0;
cmove:=-1;
end;
if a='P' then
begin
rmove:=0;
cmove:=1;
end;
worm;
until a=#27;
closegraph;
end.
24
Рис. 4. Изображение движения змеи.
25
Лабораторная работа 3
Программирование статической графики в Visual BASIC.
Цель работы: изучение методов статической графики.
Исходные теоретические сведения.
В языке Visual Basic есть так называемые графические
средства, к которым относятся графические методы и
графические объекты. Эти средства наделяют процесс
проектирования Windows-приложений и сами эти приложения
многими интересными и полезными возможностями.
Графический метод Scale.
Метод - это некоторое действие, которое может выполнять
Visual Basic над данным объектом. Это действие выполняется
особой, системной программой Visual Basic. Данную программу
часто тоже называют методом. В результате этого действия
(работы системной программы) в объекте что-то изменяется например, изменяется значение какого-нибудь его свойства.
Графический метод - это такой метод, который позволяет
изображать на объекте данного класса какой-нибудь
геометрический элемент, например точку, отрезок, прямоугольник, окружность и т.д.
Объект класса Графическое окно - это новый элемент
управления. Его можно создать с помощью инструмента,
который входит в состав стандартного набора инструментов
Toolbox в Visual Basic.
Объекты Form и PictureBox имеют абсолютные координаты
- положение на экране (объекты Form) или положение на
экранной форме (объекты PictureBox), а также размеры (ширину
и высоту).
Абсолютные координаты выражаются довольно большими
числами, что очень неудобно. Поэтому для решения многих
графических задач, например, для рисования фигур или
построения графиков, целесообразно задать новую систему
координат. Эта система координат привязывается к тому
объекту, на котором будет строиться изображение (говорят
также, что объекту назначается новая система координат).
26
Часто, например, удобно считать, что начало координат
находится посредине объекта, ось X, как это принято, направлена вправо, а ось Y - вверх.
Метод Scale решает задачу назначения объекту новой
системы координат. Синтаксис метода таков:
[ИмяОбъекта.] Scale (Х1, Y1) - (Х2, Y2)
ИмяОбъекта может отсутствовать. В этом случае по
умолчанию метод Scale используется Экранной формой.
(XI, Y1) - новые координаты левого верхнего угла Объекта, а
(Х2, Y2) - новые координаты правого нижнего угла Объекта.
Сразу после выполнения метода Scale старые (абсолютные)
координаты Объекта будут заменены новыми.
Графическое окно
ScaleHeight (Высота объекта — разность координат нижнего
и верхнего краёв объекта), ScaleLeft (Левый край — координата
левого края объекта) и ScaleTop (Верхний край — координата
верхнего края объекта).
Рисование в фор.
Canvas (холст) – это область рисунка в форме и многих
других графических компонентах. Чтобы получить доступ к
пикселям формы, используйте свойство формы Canvas и
свойство Pixels для Canvas. Свойство Pixels – это двумерный
массив, соответствующий цветам отдельных пикселов в Canvas.
Canvas.Pixels[10,20] соответствует цвету пикселя, который
находится на 10 пикселов правее и на 20 пикселов ниже точки
отсчета. Обращайтесь с массивом пикселей как с любым другим
свойством; чтобы изменить цвет пикселя - присвойте новое
значение. Чтобы определить цвет пикселя – прочитайте
значение.
Каждое свойство Canvas имеет воображаемое перо для
рисования линий и контуров. Свойство Pen (перо) определяет
цвет и размер линий и границ фигур. Свойствами пера являются
его цвет, размер (если это сплошная линия) или стиль. Работая с
пером, вы можете прочитать (но не изменить) его текущую
позицию (свойство PenPos). Позиция пера определяет исходную
точку следующей линии, которую программа может нарисовать
27
с помощью метода LineTo. Для изменения позиции вы можете
применить метод MoveTo канвы.
Свойство Brush (кисть) определяет цвет очерченной
поверхности. Кисть используется для закрашивания замкнутых
фигур. Свойствами кисти являются ее цвет, стиль и иногда
растровое изображение.
Свойство Font определяет шрифт, который используется
методом холста TextOut для написания текста в форме. Шрифт
имеет имя, размер, стиль, цвет и т.п.
Черчение и рисование в системе Windows
Черчение – вы обращаетесь к канве и вызываете некоторые
ее методы. Поскольку изображение не сохраняется, форма
может частично или целиком потерять свое содержимое (при
закрытии окна формы другим окном или при уменьшении
размера окна формы ).
Рисование – это технология, которая позволит приложению
перерисовывать всю ее поверхность при любых возможных
условиях.
Для вызова перерисовки можно использовать методы
Invalidate, UpDate, ReFresh и Repaint.
Варианты заданий
1. Нарисуйте шахматную доску.
2. Нарисуйте флаг Олимпийских игр.
3. Нарисуйте корабль.
4. Нарисуйте ракету.
5. Нарисуйте узор из 100 окружностей случайного диаметра и
цвета.
6. Нарисуйте ломаную линию, состоящую из 200 звеньев,
окрашенных в разные цвета, выбираемые случайным образом,
причем координаты звеньев тоже выбираются случайно.
7. Нарисуйте контур пятиконечной звезды.
8. Нарисуйте закрашенный шестиугольник.
9. Нарисуйте государственный флаг России.
10. Нарисуйте спираль Архимеда.
11. Нарисуйте автомобиль.
12. Нарисуйте оцифрованную координатную сетку.
28
13. Нарисуйте точечный график функции у=0,5х+4х-3. Диапазон
изменения аргумента от -15 до 5, шаг аргумента -0,1.
14. Нарисуйте гистограмму успеваемости 10 студентов по
итогам 5 расчетных работ по математике с надписями среднего
балла и фамилий студентов.
15. Нарисуйте круговую диаграмму, отражающую объем
выпуска продукции машиностроительным предприятием за год.
17. Нарисуйте электронные часы с большим циферблатом.
18. Нарисуйте настольный персональный компьютер.
19. Нарисуйте принтер.
Пример выполнения одного из вариантов заданий
Изобразить с помощью стандартных средств VB тепловоз.
Private Sub Command1_Click()
Picture1.Line (500, 300) -(500, 3000)
Picture1.Line (500, 300) -(2000, 300)
Picture1.Line (2000, 300) -(2500, 1500)
Picture1.Line (2500, 1500) -(5500, 1500)
Picture1.Line (5500, 1500) -(5500, 3000)
Picture1.Line (500, 3000) -(5500, 3000)
Picture1.Line (3500, 1500) -(3500, 850)
Picture1.Line (3900, 1500) -(3900, 850)
Picture1.Circle (1200, 3700), 600
Picture1.Circle (4500, 3800), 500
Picture1.Line (100, 4300) -(6000, 4300)
Picture1.Line (1200, 3200) -(4500, 3800), vbBlack
End Sub
29
Рис. 1. Изображение стоящего поезда.
30
Лабораторная работа 4
Программирование динамической графики в Visual BASIC
Цель работы: изучение методов динамической графики.
Исходные теоретические сведения
Метод PSet.
Этот метод применяется к тем же объектам, к которым
применяется и метод Scale.
Синтаксис метода следующий:
[ИмяОбъекта.] PSet (X, Y) [, Цвет]
ИмяОбъекта может отсутствовать. В этом случае по
умолчанию метод PSet используется Экранной формой.
(X, Y) - координаты «точки» (точнее - маленького цветного
пятна на экране), которую хотите изобразить на Объекте.
Цвет - это выражение, значением которого является число
типа Long. Этим числом в Visual Basic кодируется тот или иной
цвет. Удобно в качестве цвета использовать константы Visual
Basic: vbWhite, vbRed, vbGreen и т.д.
Цвет может отсутствовать. В этом случае по умолчанию его
значением будет 0 - код чёрного цвета.
Если перед выполнением метода PSet метод Scale не
применялся, то в качестве координат X и Y будут использоваться
абсолютные координаты Объекта.
Очевидно, что интерес представляет рисование не одной
точки, а большого количества точек.
Рисование отрезков и прямоугольников с помощью
графического метода Line.
Метод Line широко используется в программировании
самых разнообразных задач. Метод применяется к объектам
класса Экранная форма (Form) и Графическое окно (PictureBox).
Метод Line позволяет:
 чертить на объекте, к которому этот метод применяется,
отрезки прямых линий;
 изображать на этом объекте закрашенные или незакрашенные прямоугольники.
Метод Line имеет следующий синтаксис:
[ИмяОбъекта.] Line (Х1, Y1) - (Х2, Y2) [, Цвет [, Флаг ]]
31
ИмяОбъекта может отсутствовать. В этом случае по
умолчанию метод применяется к экранной форме.
Вслед за ключевым словом Line через запятую следуют так
называемые параметры метода. Рассмотрим их по очереди.
Параметр (XI, Y1) - (Х2, Y2) - это координаты границ
отрезка или двух углов прямоугольника - левого верхнего и
правого нижнего (или наоборот - правого нижнего и левого
верхнего).
Параметр Цвет - это выражение, значением которого
является число типа Long, которым в Visual Basic кодируется тот
или иной цвет.
Таблица 1.
Цвет
Константа
Числовое значение
Чёрный
vbBlack
0
Красный
vbRed
255
Зелёный
vbGreen
65280
Жёлтый
vbYellow
65535
Синий
vbBlue
16711680
Сиреневый
vbMagenta
16711935
Голубой
vbCyan
16776960
Белый
vbWhite
16777215
Чаще всего в качестве этого выражения используют:
 число типа Long;
 одну из восьми констант Visual Basic, представленных в
таблице.
Параметр Цвет может отсутствовать. Тогда по умолчанию
он будет совпадать со значением свойства ForeColor объекта.
Параметр Флаг - это либо символ В, либо символы BF. В
первом случае рисуется не отрезок, а прямоугольник, во второмзакрашенный прямоугольник. (Цвет закраски - это значение
параметра Цвет.)
Если в качестве Флага используется символ В, то прямоугольник будет ничем не заполнен, когда у объекта, в котором
он рисуется, значение свойства FillStyle равно 1. Именно это
значение установлено у данного свойства по умолчанию. Если
изменить это значение, прямоугольник будет заполнен.
Отметим и то, что толщину отрезка или контура прямо32
угольника можно увеличить. Для этого, как и в методе PSet,
следует увеличить значение свойства DrawWidth (по умолчанию
оно равно 1).
Совместное использование методов Line и Print.
Метод Print используется для выдачи чисел и строк на
Объект - на экранную форму или в графическое окно. Эту
выдачу называют печатью чисел или строк на данном объекте.
Синтаксис метода Print следующий:
[ИмяОбъекта.] Print [ПоследовательностьФрагментов]
Последовательность Фрагментов - это либо один Фрагмент
(одно число или одна строка), либо несколько Фрагментов,
между которыми стоит разделитель печати - запятая (,) или
точка с запятой (;). В первом случае Фрагменты печатаются так
называемыми зонами (по 14 символов в каждой зоне); во втором
случае - вплотную друг к другу. Если после слова Print ничего
нет, печатается пустая строка.
Метод Print может использоваться совместно с методом Line
и с другими графическими методами. При этом строки и числа
будут печататься в том месте экранной формы или графического
окна, где закончилось рисование отрезка или прямоугольника —
точнее, чуть ниже и правее точки, на которой закончилось
рисование.
Метод Circle.
Этот метод применяется к тем же объектам, к которым
применяются и предыдущие графические методы. Синтаксис
метода следующий:
[ИмяОбъекта.] Circle (X, У), Радиус [, Цвет [, Угол1 , Угол 2
[,КоэффициентСжатия ]]]
ИмяОбъекта может отсутствовать. В этом случае по
умолчанию метод Circle используется Экранной формой.
Смысл параметров метода следующий.
(X, Y) - координаты центра круга или эллипса, который (или
часть которого) будет создавать метод Circle на Объекте.
Цвет - это выражение, которое определяется так же, как и
для метода Line.
33
Угол1 и Угол2 - это начальный и конечный углы дуги или
сектора.
Углы измеряют в радианах, их значения берутся в интервале
от 0 до 2. Нулевой угол соответствует горизонтальной оси,
направленной вправо.
Если перед ненулевым значением угла ставится знак «-»
(минус), это означает, что будет нарисована не дуга, а сектор (а
вовсе не то, что угол отрицательный).
При рисовании дуги или сектора движение «пера» происходит всегда против часовой стрелки. Если изображается не
дуга и не сектор круга или эллипса, а полный круг или эллипс,
углы, естественно, отсутствуют.
КоэффициентСжатия - это положительное число, большее
или меньшее единицы. В первом случае получается эллипс,
вытянутый по вертикали, а во втором - вытянутый по
горизонтали. Степень вытянутости определяется значением
Коэффициента. Если он отсутствует, по умолчанию
изображается круг (окружность).
Как и в методе Line, не только значения перечисленных
параметров метода Circle влияют на вид фигуры, которая будет
построена этим методом.
Функции RGB и QBColor, возвращающие цвет.
Функция RGB. В предыдущей лабораторной работе было
сказано, что в языке Visual Basic цвет задаётся либо с помощью
длинного целого числа, либо с помощью одной из 8 констант.
Значения этих констант можно представить в виде суммы трёх
слагаемых: R + 256 G + 2562 В, где каждая из переменных (R, G
и В) принимает одно из двух значений — 0 или 255.
Переменные R, G и В могут принимать и другие целочисленные значения от 0 до 255, например: R = 64, G = 128 и В =
192. В языке Visual Basic есть функция RGB (R, G, В), значение
которой — это значение указанной суммы, имеющее тип Long
(Длинное целое число).
Очевидно, что количество значений, которые может принимать функция RGB, равно 2563. Это очень большое число —
именно такое количество различных цветовых оттенков могут
использовать графические методы Visual Basic.
34
Каждый оттенок представляет собой смесь всего трёх
цветов: красного (Red), зелёного (Green) и синего (Blue).
Значение переменной R - это доля красного цвета в этой смеси,
значение переменной G - доля зелёного цвета, а значение
переменной В - доля синего цвета.
Если все три значения одинаковы, цвета нейтрализуют друг
друга - получается чёрный, серый или белый цвет (чем меньше
это значение, тем цвет ближе к чёрному, чем больше, тем ближе
к белому).
Если значения R, G и В не совпадают, получаются оттенки
самых разных цветов. Например, если R = 0, a G = В, получается
голубой цвет (Cyan); если G = 0, a R = В, получается сиреневый
цвет (Magenta), если же В = 0, a R = G, получается жёлтый цвет
(Yellow). Все эти цвета будут более яркими, если ненулевые
значения ближе к 255, и будут приближаться к чёрному, если
ненулевые значения приближаются к 0.
Функция QBColor. Кроме перечисленных способов задания
цвета, в языке Visual Basic есть ещё один - с помощью функции
QBColor, единственным аргументом которой является целое
число С, а значением - код цвета (число типа Long).
Способы заполнения фигур, построенных с помощью
графических методов.
Фигуры, которые строятся с помощью методов Line и Circle,
в частности, прямоугольники, круги, эллипсы, секторы кругов и
эллипсов, - могут не только заливаться каким-либо цветом или
оставаться «прозрачными» (ничем не заливаться), но и
заполняться другим способом.
Цвет штриховки - это значение свойства FillColor этого
объекта.
Во втором случае значение свойства FillStyle объекта
Графическое окно равно 0 (Solid), и прямоугольник сплошь
заполнен цветом, который является значением свойства FillColor
этого объекта.
Варианты заданий
1. Нарисовать подвижные трехмерные гистограммы, столбики
окрашены тремя цветами.
35
2.Нарисовать циферблатные часы с использованием встроенного
датчика времени.
3. Нарисовать поле кроссворда с мерцанием.
4. Нарисовать орнамент с мерцанием.
5. Нарисовать мерцание многолепестковых роз.
6. Нарисовать 6 дорожных знаков с мерцанием.
7. Изобразить набор функций, отображающих большие символы
псевдографики 219-223 таблицы ASCII при нажатии на
определенные клавиши.
8. Нарисовать четыре квадрата: один - вращается, второй мерцает, третий - движется по горизонтали, четвертый - по
вертикали. Все квадраты разного цвета.
9. Нарисовать круг с изменяемым радиусом (клавиши +, - ),
расположением (клавиши стрелок) и величиной сжатия
(клавиши PgDn, PgUp).
10. Нарисовать ползущую по экрану змею. Направление
движения оперативно меняется стрелками.
11. Нарисовать игру бумеранг. Должны задаваться скорость и
угол броска.
12. Нарисовать карту звездного неба с мерцающими
созвездиями, перемещением планет, комет, метеоритов.
13. Нарисовать автомобиль с вращающимися колесами (вид
сбоку). Скорость изменяется клавишами + и -.
14. Нарисовать упругий удар двух шаров, следующих навстречу
друг другу. После удара шары должны отходить друг от друга.
После отскока шары возвращаются назад. Скорости движения
шаров различны.
15. Нарисовать пирамиду с интерактивным заданием
местоположения и вращением вокруг одного своего ребра.
16. Изобразить вращение шара, состоящего из меридианов и
параллелей.
17. Нарисовать отскакивающий мяч с интерактивным
изменением скорости движения, отскоком от горизонтальных и
вертикальных стенок.
18. Нарисовать движение кривошипно-ползунного механизма.
19. Нарисовать движение всех планет Солнечной системы.
36
Пример выполнения одного из вариантов заданий
Необходимо написать программу в среде Visual Basic 6.0,
которая выводит на экран монитора имитацию движения поезда
с помощью перемещения шатуна и шпал (вид сбоку).
Private Sub Command1_Click()
Randomize Timer
Picture1.Line (500, 300) -(500, 3000)
Picture1.Line (500, 300) -(2000, 300)
Picture1.Line (2000, 300) -(2500, 1500)
Picture1.Line (2500, 1500) -(5500, 1500)
Picture1.Line (5500, 1500) -(5500, 3000)
Picture1.Line (500, 3000 )-(5500, 3000)
Picture1.Line (3500, 1500) -(3500, 850)
Picture1.Line (3900, 1500) -(3900, 850)
Picture1.Circle (1200, 3700), 600
Picture1.Circle (4500, 3800), 500
Picture1.Line (100, 4300) -(6000, 4300)
For i = 1 To 100
Picture1.PSet (100 * Rnd + 3700, 1000 * Rnd +
100), vbBlack
For p = 1 To 600000
Next p
Picture1.PSet (100 * Rnd + 3700, 1000 * Rnd +
100), vbWhite
Picture1.Line (1200, 3200) -(4500, 3800), vbBlack
For p = 1 To 600000
Next p
Picture1.Line (1200, 3200) -(4500, 3800), vbWhite
Picture1.Line (1600, 38 00)-(4600, 3800), vbBlack
For p = 1 To 600000
Next p
Picture1.Line (1600, 3800) -(4600, 3800), vbWhite
Picture1.Line (1200, 4200) -(4500, 3800), vbBlack
For p = 1 To 600000
Next p
Picture1.Line (1200, 4200) -(4500, 3800), vbWhite
Picture1.Line (800, 3700) -(4400, 3800), vbBlack
For p = 1 To 600000
37
Next p
Picture1.Line (800, 3700) -(4400, 3800), vbWhite
If i Mod 2 = 0 Then
Picture1.Line (200, 4500) -(600, 4500)
Picture1.Line (200, 4500) -(200, 4300)
Picture1.Line (600, 4500) -(600, 4300)
Picture1.Line (1800, 4500) -(2200, 4500)
Picture1.Line (1800, 4500) -(1800, 4300)
Picture1.Line (2200, 4500) -(2200, 4300)
Picture1.Line (3400, 4500) -(3800, 4500)
Picture1.Line (3400, 4500) -(3400, 4300)
Picture1.Line (3800, 4500) -(3800, 4300)
Picture1.Line (5000, 4500) -(5400, 4500)
Picture1.Line (5000, 4500) -(5000, 4300)
Picture1.Line (5400, 4500) -(5400, 4300)
For p = 1 To 4000000
Next p
Picture1.Line (200, 4500) -(600, 4500), vbWhite
Picture1.Line (200, 4500) -(200, 4300), vbWhite
Picture1.Line (600, 4500) -(600, 4300), vbWhite
Picture1.Li ne (1800, 4500) -(2200, 4500), vbWhite
Picture1.Line (1800, 4500) -(1800, 4300), vbWhite
Picture1.Line (2200, 4500) -(2200, 4300), vbWhite
Picture1.Line (3400, 4500) -(3800, 4500), vbWhite
Picture1.Line (3400, 4500) -(3400, 4300), vbWhite
Picture1.Line (3800, 4500)-(3800, 4300), vbWhite
Picture1.Line (5000, 4500) -(5400, 4500), vbWhite
Picture1.Line (5000, 4500) -(5000, 4300), vbWhite
Picture1.Line (5400, 4500) -(5400, 4300), vbWhite
Else
Picture1.Line (1000, 4500) -(1400, 4500)
Picture1.Line (1000, 4500) -(1000, 4300)
Picture1.Line (1400, 4500) -(1400, 4300)
Picture1.Line (2600, 4500) -(3000, 4500)
Picture1.Line (2600, 4500) -(2600, 4300)
Picture1.Line (3000, 4500) -(3000, 4300)
Picture1.Line (4200, 4500) -(4600, 4500)
Picture1.Line (4200, 4500) -(4200, 4300)
38
Picture1.Line (4600, 4500) -(4600,
For p = 1 To 4000000
Next p
Picture1.Line (1000, 4500) -(1400,
Picture1.Line (1000, 4500) -(1000,
Picture1.Line (1400, 4500) -(1400,
Picture1.Line (2600, 4500) -(3000,
Picture1.Line (2600, 4500) -(2600,
Picture1.Line (3000, 4500) -(3000,
Picture1.Line (4200, 4500) -(4600,
Picture1.Line (4200, 4500) -(4200,
Picture1.Line (4600, 4500) -(4600,
End If
Next i
End Sub
39
4300)
4500),
4300),
4300),
4500),
4300),
4300),
4500),
4300),
4300),
vbWhite
vbWhite
vbWhite
vbWhite
vbWhite
vbWhite
vbWhite
vbWhite
vbWhite
Рис. 1. Изображение движущегося поезда.
40
Лабораторная работа 5
Основы работы с растровым графическим редактором
Photoshop
Цель работы: рассмотрение приемов работы с растровыми
графическими редакторами на примере русскоязычной версии
программы Adobe Photoshop.
Исходные теоретические сведения
Основные элементы управления программы сосредоточены
в строке меню и панели инструментов. Кроме этого в
программах компании Adobe используются особые диалоговые
окна – инструментальные палитры (рис. 1).
Рис. 1. Графический редактор Adobe Photoshop.
Панель инструментов является основным (хотя и не
единственным) средством для работы с изображениями.
Основные инструменты объединены в четырех группах значков
на панели инструментов.
В программах, выпущенных компанией Adobe, часто
используются диалоговые окна особого вида. Они называются
палитрами и имеют некоторые общие элементы управления.
Палитры служат для настройки действия основных
инструментов и для операций с изображением и его файлом (в
этом случае они сами играют роль инструментов).
41
Варианты заданий
1. Изменение динамического диапазона (управление яркостью
и контрастностью изображения).
2. Повышение четкости изображения.
3. Цветовая коррекция (изменение яркости и контрастности в
каналах красной, зелёной и синей составляющих цвета).
4. Отмывка (изменение яркости отдельных фрагментов).
5. Растушёвка (сглаживание перехода между границами
отдельных фрагментов).
6. Обтравка («вырезание» отдельных фрагментов из общей
композиции).
7. Набивка
(восстановление
утраченных
элементов
изображения путём копирования фрагментов с сохранившихся
участков).
8. Монтаж (компоновка изображения из фрагментов,
скопированных или импортированных из других изображений).
9. Выделение, создание, дублирование и удаление каналов,
определение их параметров, изменение порядка, преобразование
каналов в самостоятельные документы и формирование
совмещенных изображений из нескольких каналов.
10. Создание макрокоманды (последовательности действий,
выполняемых с изображением). Макрокоманды можно
записывать, выполнять, редактировать, удалять и сохранять в
виде файлов.
11. Быстро просмотреть различные фрагменты изображения и
изменить масштаб просмотра.
12. С помощью элементов управления палитры изменять
свойства инструмента.
Пример выполнения одного из вариантов заданий
Необходимо быстро просмотреть различные фрагменты
изображения и изменить масштаб просмотра.
Масштаб просмотра можно регулировать сочетаниями
клавиш: Ctrl– и Ctrl+ соответственно для уменьшения и
увеличения изображения (рис. 2,3). Для быстрого просмотра
некоторой части рисунка нужно выделить необходимую область
и применить инструмент «лупа», находящийся на панели
инструментов (рис. 4).
42
Рис. 2. Увеличение всего изображения: до 100% (Ctrl+)
Рис. 3. Уменьшение всего изображения: до 66,7% (Ctrl-)
43
Рис. 3. Увеличение части изображения: до 200% («лупа»)
44
Лабораторная работа 6
Подготовка презентаций в Power Point
Цель работы: изучить основные принципы подготовки
презентаций на примере программы Microsoft Power Point
(«съемка» и «монтаж» презентации, демонстрация слайдфильма).
Исходные теоретические сведения
Объектом обработки PowerPoint является файл презентации,
имеющий произвольное имя и расширение .РРТ. В этот файл
входят структурные элементы презентации – слайды вместе с
дополнительной информацией (заметки, примечания и т.п.).
Выдавая слайды на экран, приложение снабжает их
порядковыми номерами (например, “Слайд 3 из 8“).
После загрузки программы на экране появляется окно
приложения с диалоговым окном <PowerPoint> (рис.1). От вас
ожидают стандартного распоряжения – создать новую или
открыть существующую презентацию. Чтобы отдать такое
распоряжение, надо щелкнуть на одной из четырех радиокнопок
и нажать ОК.
Самый быстрый способ создания новой презентации –
воспользоваться услугами Мастера автосодержания (верхняя
радиокнопка). В этом случае на экран поступит диалоговое окно
Мастера, который будет задавать вопросы: «Ваше имя?», «О чем
собираетесь говорить?» (обучение, реклама фирмы и т.п.),
«Сколько времени будете говорить?» и др. Пользуясь ответами,
Мастер
за
несколько
шагов
создаст
«черновик»
профессиональной презентации из 8-15 слайдов.
Кнопка Шаблон презентации позволяет взять за основу
слайд-фильма один из готовых шаблонов, которые хранятся в
файлах с расширением .POT. Если щелкнуть на этой кнопке и
нажать ОК, на экране появится диалоговое окно «Создать
презентацию» с тремя вкладками (рис.2). На вкладке Дизайны
презентации можно выбрать дизайн – определённый стиль
оформления презентации (цвета, шрифты, «антураж»). На
вкладке Презентации представлены шаблоны, которые
отражают не только цветовой стиль, но и тему, содержание
предполагаемого слайд-фильма.
45
Если активизировать кнопку Пустая презентация (рис.1),
то о
создании «художественного образа» презентации (т.е. о
цветах и прочем) придется позаботиться самим. Если снять
флажок «Показывать диалог при старте», после запуска Power
Point сразу выдается диалоговое окно «Создать слайд» с
предложением выбрать авторазметку для первого слайда вновь
создаваемой презентации. Можно закрыть это окно и открыть
существующую презентацию ([Файл-Открыть]).
Рис.1. Главное окно Power Point.
Варианты заданий
1. Подготовить три слайда рекламы стиральных порошков.
2. Подготовить три слайда приглашения на экскурсию.
3. Подготовить три слайда приглашения на занятия
подготовительных курсов.
4. Сделать (оформить) витрину магазина (3 слайда)
5. Оформить три плаката по технике безопасности.
6. Продемонстрировать работу всех инструментов Power Point.
Пример выполнения одного из вариантов заданий
Подготовить три слайда рекламы концертной группы.
46
Ход работы:
 запускаем MS PowerPoint;
 в диалоговом окне щелкаем на кнопках "Пустая
презентация" и OК;
 в диалоговом окне выбираем "Только заголовок";
 в поле "Заголовок" вводим текст: Приглашение;
 производим
анимацию:
Показ
слайдов>Настройка
анимации;
 вставляем новый слайд: Вставка>Новый слайд;
 в диалоговом окне выбираем "Маркированный список", в
заголовок вводим текст: «Приглашаем вас на рок-концерт
знаменитой группы «Кино»;
 оформляем список;
 вставить новый слайд: Вставка>Новый слайд;
 в диалоговом окне выбрать "Пустой слайд";
 добавить надпись: «Также вас ждет встреча со многими
другими рок-звездами»;
 настроить
параметры
показа
слайдов:
Показ
слайдов>Настройка презентации;
 запустить показ слайдов.
Рис. 2. Слайд №1.
47
Рис. 3. Слайд №2.
Рис. 4. Слайд №3.
48
Лабораторная работа 7
Чертеж в векторном графическом редакторе CorelDraw
Цель работы: научиться работать в векторном графическом
процессоре Corel Draw.
Исходные теоретические сведения
Экран CorelDRAW состоит из следующих компонентов:
* рамки окна;
* титульной планки;
* планки меню;
* планок горизонтального и вертикального скроллирования;
* окна редактирования;
* инструментального ящика;
* окна предварительного просмотра (необязательно);
* строки статуса;
* линейки (необязательно);
* цветовой палитры (необязательно);
* экранной координатной сетки.
Рамка окна
Рамка окна применяется для изменения размера окна
CorelDRAW. Обычно применяется в случае параллельной
загрузки другого приложения Windows.
Титульная планка
Помимо имени используемой программы и имени файла,
находящегося в данный момент в работе, титульная планка
используется для перемещения окна CorelDRAW по экрану.
Пиктограмма стрелки на правом конце титульной планки
позволяет изменять размер окна от полного экрана до размеров
пиктограммы.
Планка меню
Планка меню содержит названия ниспадающих меню:
планки горизонтального и вертикального скроллирования,
планки скроллинга предназначены для изменения текущей
позиции обзора окна. Их особенно удобно использовать при
просмотре окна в режиме увеличения.
Окно редактирования
Большая часть белой области экрана является окном
редактирования. Прямоугольник в центре экрана, выделенный
49
тенями, представляет собой печатную страницу принтера.
Только часть рисунка, которая находится внутри этого
прямоугольника, будет выводиться на принтер.
Когда рисуете в окне редактирования, прорисовывается
только контур или "скелет" объекта. Это позволяет
впоследствии легко выбирать объекты и манипулировать ими,
быстро перерисовывая экран. Поскольку заполнение объекта и
рисование его очертаний под управлением Windows очень
медленная операция, CorelDRAW сконструирован так, чтобы в
случае необходимости полной перерисовки она проходила под
контролем. Помощником в обеспечении таких операций
является необязательное окно предварительного просмотра.
Инструментальный ящик
"Инструментальный ящик" дает возможность быстрого
доступа к наиболее часто применяемым в CorelDRAW
операциям. Он содержит следующие инструменты:
[1]
The Pick Tool……для выбора и трансформации объектов
[2]
The Shape Tool………для изменения формы объектов
[3]
The Zoom Tool ………для изменения масштаба обзора
[4]
The Pencil Tool .для построения прямых и кривых линий
[5]
The Rectangle Tool……для построения прямоугольников
[6]
The Ellipse Tool…….для построения эллипсов и окружн.
[7]
The Text Tool……..для ввода текста и символов
[8]
The Outline Tool…….для назначения атрибутов контура
The Fill Tool……...для назначения атрибутов заполнения
Каждый из этих инструментов детально описан в
следующем разделе этого руководства.
Окно предварительного просмотра
Если Вы желаете видеть нарисованный объект с атрибутами
его контура и заполнения, можете запустить CorelDRAW с
окном предварительного просмотра:
[9]
50
Следующие опции придают окну предварительного
просмотра значительную гибкость. Можете выбрать:
 расположение окна предварительного просмотра (смотрите
примеры);
 автоматическое изменение рисунка или его перерисовывание
только в случае необходимости;
 увеличение изображения в окне предварительного
просмотра,
автоматический
просмотр
области
при
редактировании экрана или раздельное управление просмотром;
 вывод в окно предварительного просмотра всего объекта или
его текущего элемента.
Операции с окном предварительного просмотра
подробно описаны в разделе меню DISPLAY.
Строка статуса
В строке статуса, расположенной на экране сверху
непосредственно под планкой меню, содержится информация о
текущем объекте и выполняемой операции.
Можете использовать команду Show Status Line из меню
DISPLAY для того, чтобы убрать с экрана строку статуса, но
рекомендуем работать с постоянно включенной строкой статуса,
поскольку она содержит богатую информацию, которая часто
используется.
Линейка
CorelDRAW дополнительно снабжен линейкой для
определения размеров объекта и координат его расположения,
появляющейся по краям окна редактирования. Как только
выполните команду Show Rulers, линейка появится на экране.
Более детальная информация о линейке приведена в
описании команды Show Rulers в меню DISPLAY.
Цветовая палитра
CorelDRAW снабжен выводимой на экран палитрой для
выбора цвета контура и цвета заполнения. Как только выполните
команду Show Color Palette, палитра появится вдоль нижнего
края экрана.
Детальная информация о цветовой палитре дана в
описании команды Show Color Palette в разделе меню DISPLAY.
51
Экранная координатная сетка
Позиционирование объектов графики можно выполнить
достаточно точно и просто с помощью координатной сетки и
вспомогательных линий. Включать эту опцию следует в тех
случаях, когда возникает необходимость точного расположения
объектов, выравнивания их по вертикали или горизонтали.
Детальная информация о координатной сетке и
вспомогательных линиях дана в описании команд Snap to Grid и
Snap to Gridelines в разделе меню DISPLAY.
Использование диалоговых окон CorelDRAW
CorelDRAW использует диалоговые окна для управления
различными операциями, например, печати или изменения
атрибутов текста. Если свободно обращаетесь с другими
приложениями Windows, то быстро найдете способ
использования диалоговых окон по их прямому назначению.
Переключатели: обычно используются для предоставления
выбора из двух или более взаимоисключающих опций. Вам
остается выбрать одну из представленных опций с помощью
подсветки и нажать кнопку мыши для ее активации.
Флажок: используется для разрешения или запрещения
выполнения отдельного параметра или опции команды. Если
опция разрешена, в клетке появляется символ "Х", если опция
запрещена - клетка остается пустой.
Командная кнопка: обычно используется для выполнения
какой-либо акции, в данном случае, например, выполнение
перезагрузки значений диалогового окна, либо представляет
собой расширение функций текущего диалогового окна.
Числовая ячейка: позволяет вводить числовые значения.
Можете ввести нужное число с клавиатуры или использовать
скроллинговые стрелки для изменения текущего значения.
Скроллинговые стрелки: используются для изменения
текущих числовых значений с помощью мыши. Стрелка вверх
служит для увеличения текущего числового значения, стрелка
вниз - для уменьшения. Каждое нажатие кнопки мыши на
скроллинговой стрелке вызовет изменение числового значения
на один шаг. Если кнопка останется нажатой, то это вызовет
непрерывное изменение числового значения. Величина
52
приращения для некоторых функций больше единицы, что
позволяет изменять их значения намного быстрей.
Переменная единица измерений: предназначена для
разрешения использования единицы измерения для выбранной
функции по усмотрению. Такая единица относится только к
опции, с которой она объединена. Можете разрешить
использовать дюймы в одном окне и точки в другом. Для
изменения единицы измерения нажмите кнопку мыши на слове.
Каждое нажатие кнопки будет вызывать изменение единицы и
автоматическое преобразование числового значения.
Дисплейная рамка: часто включается в различные
диалоговые окна для того, чтобы дать представление о текущем
выборе. Как только изменили свой выбор, дисплейное окно
тотчас же изменится в зависимости от сделанного выбора.
Командная кнопка ОК: применяется для подтверждения
изменений в диалоговом окне, их выполнения и возврата к
редактированию.
Командная кнопка Cancel: выполнение этой кнопки
заставляет CorelDRAW игнорировать все изменения в
диалоговом окне и возвратиться в окно редактирования.
Ниже показаны два дополнительных типа управления:
текстовые ячейки и рамки со списком.
Поле редактирования: дает возможность ввести строку
текста. Нажмите кнопку мыши на существующей строке, чтобы
открыть ее для редактирования. Отредактируйте строку с
клавиатуры. Клавиша HOME перемещает курсор к началу
строки, END - к концу. Клавиша DEL забивает символ справа от
курсора, BACKSPACE - слева от курсора. Вы можете
подсветить часть текста протяжкой мыши. Подсвеченная часть
текста может быть уничтожена клавишей DEL или
BACKSPACE.
Поле списка: позволяет выбрать элемент или список
отдельных элементов. Скроллирование списка осуществляется с
помощью скроллинговых планок, а выбор элемента - двойным
нажатием кнопки мыши с последующим выполнением
командной кнопки ОК.
53
Для получения детальной информации по использованию
диалоговых окон обратитесь к Справочнику пользователя
Microsoft Windows.
Варианты заданий
1. Изобразите аксонометрический чертёж детали.
2. Изображение оси.
3. Изобразите аксонометрическую проекцию болта с резьбой.
4.Изобразите
аксонометрическую
проекцию
уголка
с
отверстием.
5. Изобразите чертёж колеса анкерного.
6. Изобразите чертеж трубчатой конической резьбы.
7. Изобразите чертеж соединения деталей болтами, винтами и
шпильками.
8. Изобразите чертеж шпоночного соединения.
9. Изобразите чертеж шлицевого соединения.
10. Изобразите чертеж сварного соединения.
11. Изобразите чертеж соединений, получаемых склеиванием.
12. Изобразите чертеж конического зубчатого колеса.
13. Изобразите сборочный чертёж винта с буртиком.
14. Изобразите аксонометрическую проекцию шестигранника.
15. Изобразите аксонометрическую проекцию пирамиды.
Пример выполнения одного из вариантов заданий
Необходимо подготовить чертеж соединений, получаемых
склеиванием в векторном графическом процессоре - CorelDraw.
Рисунок необходимо сохранить в формате Windows Bitmap
(.bmp).
Ход работы:
 открыть CorelDraw: < Пуск/ Программы/ CorelDraw>;
 начать новый рисунок, выбрав в меню <File/ New> или
нажав кнопку на ПИ;
 контуры, детали и вспомогательные элементы чертежа
(например, осевые линии) рисовать отрезками и дугами от точки
к точке при помощи инструментов CorelDraw. Такими как:
 инструмент Форма;
 инструмент «Свободная рука»;
54
 инструмент Безье;
 инструмент Полилиния;
 для штриховки области чертежа в векторном процессоре
CorelDraw сначала выделить нужное место и только после этого
в окне свойств объекта установить необходимую заливку;
 после окончания работы над чертежом заблокировать
объект.
Рис. 1. Чертёж, сделанный в графическом редакторе CorelDraw.
55
Лабораторная работа 8
Чертеж в специализированном графическом пакете AutoCad
Цель работы: научиться работать в векторном графическом
процессоре AutoCad.
Исходные теоретические сведения
AutoCad относится к программам векторной графики:
изображение хранится как набор координат базовых точек,
задающих положения отрезков и дуг. Существует еще и
растровая графика (Adobe Photoshop, Paint), когда изображение
разбивается на множество точек-пикселей и запоминается цвет
каждого пикселя. Векторную графику, в отличие от растровой,
можно масштабировать без потери качества и легко изменять.
Поэтому во всех системах автоматизированного проектирования
(САПР) применяется только векторная графика. Кроме того, при
необходимости векторное изображение без проблем переводится
в растровое, а вот обратный переход фактически невозможен.
Варианты заданий
1. Изобразите аксонометрический чертёж детали.
2. Изобразите чертёж оси.
3. Изобразите аксонометрическую проекцию болта с резьбой.
4.Изобразите
аксонометрическую
проекцию
уголка
с
отверстием.
5. Изобразите чертёж колеса анкерного.
6. Изобразите чертеж трубчатой конической резьбы.
7. Изобразите чертеж соединения деталей болтами, винтами и
шпильками.
8. Изобразите чертеж шпоночного соединения.
9. Изобразите чертеж шлицевого соединения.
10. Изобразите чертеж сварного соединения.
11. Изобразите чертеж соединений, получаемых склеиванием.
12. Изобразите чертеж конического зубчатого колеса.
13. Изобразите сборочный чертёж винта с буртиком.
14. Изобразите аксонометрическую проекцию шестигранника.
15. Изобразите аксонометрическую проекцию пирамиды.
56
Пример выполнения одного из вариантов заданий
Необходимо подготовить чертеж фланца в векторном
графическом процессоре – AutoCad.
Ход работы:
Открыть AutoCad: <Пуск/ Программы/ AutoDesk/ AutoCad>;
Начать новый рисунок, выбрав в меню <File/ New> или
нажав кнопку
на ПИ;
Контуры, детали и вспомогательные элементы чертежа
(например, осевые линии) рисовать отрезками и дугами от точки
к точке при помощи примитивов AutoCad Line (Отрезок)
и
Polyline (Полилиния) . Перед началом рисования установить
тип линии (сплошная, штрихпунктирная...), цвет линии и
выбрать примитив.
В первую очередь провести осевые линии. Если деталь
симметрична, отрисовывается контур только ее половины или
четверти - остальное AutoCad построит автоматически.
Для штриховки (кнопка на ПИ
) области чертежа
необходимо сначала единой замкнутой полилинией обвести
периметр этой области, а после штриховки этот замкнутый
контур удалить.
При рисовании данного чертежа понадобится рисование
волнистых линий. Сначала рисуется ломаная полилиния,
которая затем превращается в волнистую командой
контекстного меню Polyline Edit, а затем Spline.
После окончания чертежа необходимо проставить размеры.
Перед простановкой размеров необходимо один раз установить
размерные переменные (рисунок).
57
Рисунок. Чертёж, сделанный в графическом редакторе AutoCad.
58
Лабораторная работа 9
Чертеж в специализированном графическом пакете
FreeHand
Цель работы: научиться работать в векторном графическом
процессоре FreeHand
Исходные теоретические сведения
Macromedia FreeHand - это идеальный инструмент для
создания диаграмм и эскизов для печати или Web. Macromedia
FreeHand использует диаграммы и презентации, соединяя их с
газетной графикой для создания печатных документов, или,
соединяя с растровой графикой, звуком и анимацией, создает
документы для Web.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Варианты заданий
Изобразите чертеж соединения крепежными деталями.
Изобразите чертеж зубчатого (шлицевого) соединения.
Изобразите чертеж детали зубчатых и цепных передач.
Изобразите чертеж пружины.
Изобразите чертеж резьбы метрической цилиндрической.
Изобразите чертеж резьбы метрической конической.
Изобразите чертеж резьбы трубной цилиндрической.
Изобразите чертеж резьбы трубной конической.
Изобразите чертеж резьбы конической дюймовой.
Изобразите чертеж резьбы круглой.
Изобразите чертеж резьбы трапецеидальной.
Изобразите чертеж резьбы упорной.
Изобразите чертеж резьбы прямоугольной.
Изобразите чертеж болта с шестигранной головкой.
Изобразите чертеж болта откидного.
Пример выполнения одного из вариантов заданий
Необходимо подготовить чертеж соединений, получаемых
склеиванием в векторном графическом процессоре - FreeHand.
Рисунок необходимо сохранить в формате Windows Bitmap
(.bmp).
Ход работы:
 открыть FreeHand: < Пуск / Программы / FreeHand >;
59
 начать новый рисунок, выбрав в меню <Файл/ Новый> или
кнопку на панели инструментов;
 контуры, детали и вспомогательные элементы чертежа
(например, осевые линии) рисовать отрезками и дугами от точки
к точке при помощи инструментов FreeHand. Такими как:
 инструмент Форма;
 инструмент «Свободная рука»;
 инструмент Безье;
 инструмент Полилиния;
 для штриховки области чертежа в процессоре FreeHand
сначала выделить нужное место и только после этого в окне
свойств объекта установить необходимую заливку;
 после окончания работы над чертежом заблокировать объект
(рисунок).
Рисунок. Чертеж резьбы упорной в графическом процессоре
FreeHand.
60
Лабораторная работа 10
Чертеж в специализированном графическом пакете Adobe
Illustrator
Цель работы: научиться работать в векторном графическом
процессоре Adobe Illustrator
Исходные теоретические сведения
Программа Adobe Illustrator предназначена, главным
образом, для любых работ, связанных с созданием и обработкой
векторной
графики,
которая
может
в
дальнейшем
использоваться и для полиграфической печати, и для
мультимедийных приложений, и для сети World Wide Web.
К изображениям, с которыми изначально работает
программа, можно отнести всевозможные знаки, логотипы,
технические иллюстрации, схемы, планы и т.д.
Основными специалистами, для которых предназначена
программа,
являются
художники-дизайнеры.
Появление
программ векторной графики подняло графический дизайн на
новый уровень и дало возможность творческому человеку
работать с формой и со шрифтом аналогичным образом
(легкость трансформаций форм и шрифта может играть даже
отрицательную роль: стало слишком легко создавать плохой
дизайн).
Программа в равной степени может использоваться
иллюстраторами технической книги.
Изображения, которые создаются в программе Adobe
Illustrator, легко интегрируются в мультимедийные программы
(например, Adobe Premiere, Adobe After Effects и многие другие),
поэтому ее могут использовать специалисты по производству
мультимедийных продуктов
Специалист новейшего направления дизайна - Webдизайнер - также может с успехом применять программу для
разработки иллюстративного материала, в том числе для
создания изображения-карты для Web-страниц.
Полиграфисту,
занятому
допечатными
процессами,
программа обеспечит цветоделение, управление параметрами
растрирования и получение цветоделенных полос.
Человеку, который за всю свою жизнь не нарисовал и
61
прямой линии, но при этом чувствует в себе наличие вкуса и
бездну идей, эта программа поможет компенсировать отсутствие
«рисовательных» навыков и с блеском реализовать свои
замыслы.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Варианты заданий
Изобразите чертеж соединения крепежными деталями.
Изобразите чертеж зубчатого(шлицевого) соединения.
Изобразите чертеж детали зубчатых и цепных передач.
Изобразите чертеж пружины.
Изобразите чертеж резьбы метрической цилиндрической.
Изобразите чертеж резьбы метрической конической.
Изобразите чертеж резьбы трубной цилиндрической.
Изобразите чертеж резьбы трубной конической.
Изобразите чертеж резьбы конической дюймовой.
Изобразите чертеж резьбы круглой.
Изобразите чертеж резьбы трапецеидальной.
Изобразите чертеж резьбы упорной.
Изобразите чертеж резьбы прямоугольной.
Изобразите чертеж болта с шестигранной головкой.
Изобразите чертеж болта откидного.
Пример выполнения одного из вариантов заданий
Необходимо подготовить чертеж соединений, получаемых
склеиванием в векторном графическом процессоре - Adobe
Illustrator. Рисунок необходимо сохранить в формате Windows
Bitmap (.bmp).
Ход работы:
 открыть Adobe Illustrator: < Пуск / Программы / Adobe
Illustrator >;
 начать новый рисунок, выбрав в меню <Файл/ Новый> или
кнопку на панели инструментов;
 контуры, детали и вспомогательные элементы чертежа
(например, осевые линии) рисовать отрезками и дугами от точки
к точке при помощи инструментов Adobe Illustrator. Такими как:
 инструмент Форма;
 инструмент «Свободная рука»;
62
 инструмент Безье;
 инструмент Полилиния;
 для штриховки области чертежа в процессоре Adobe
Illustrator сначала выделить нужное место и только после этого в
окне свойств объекта установить необходимую заливку;
 после окончания работы над чертежом заблокировать объект
(рисунок).
Рисунок. Чертеж резьбы упорной в графическом процессоре
Adobe Illustrator.
63
Лабораторная работа 11
Работа в трехмерном графическом пакете 3DS MAX
Цель работы: научиться работать в трехмерном графическом
пакете 3 ds MAX.
Исходные теоретические сведения
Построение
убедительной
модели
реального
или
вымышленного объекта - занятие весьма приятное и интересное.
Главное при этом - найти правильный баланс между
тщательностью проработки объекта и его сложностью,
поскольку вам ведь наверняка хочется, чтобы объекты потом
можно было рендерить или анимировать. В процессе
проектирования модели постоянно держите в голове ее
утилитарное назначение, то есть конечную цель, которой эта
модель будет служить. Если в дальнейшем объект нужно будет
анимировать, не делайте его слишком сложным, чтобы не
затруднять последующие этапы работы. По окончании процесса
анимации всегда можно будет подправить объект и отрендерить
его заново.
Не создавайте объекты булевыми операциями без особой на
то причины.
Если два объекта пересекаются, не образуйте из них новый
посредством булевых операций (за исключением тех случаев,
когда объекты прозрачны). В результате булевой группировки
появится новый объект с гораздо более длинным списком
вершин и граней, а видимых изменений не произойдет.
Делать
подвижные,
гибкие
сочленения
объектов,
основываясь лишь на их собственной геометрии, это, как
правило, не лучший вариант действий. Если впоследствии
модель придется переделывать, то может обнаружиться, что
ранее выполненная анимация работает некорректно. Чтобы
избежать этих проблем, в местах сочленений следует
использовать нуль-объекты или невидимые кубы, а уже к ним
прикреплять видимые детали.
Многие системы поддерживают NURBS-поверхности, и
этим
преимуществом
следует
активно
пользоваться.
Поверхности такого типа не только устраняют проблему резких
64
«фонговых» переходов в местах сочленения плоских граней, но
и придают объектам более реалистичный, натуральный вид.
Избегайте переходов, за исключением той ситуации, когда
моделлер полностью поддерживает абсолютно все типы данных,
что и рендерер (включая, к примеру, NURBS и тому подобные
вещи), во всех остальных случаях следует избегать переноса
моделей из одного пакета в другой. В этом случае возникает
опасность, что данные будут каким-либо образом испорчены.
Позаботьтесь о хороших исходных материалах, если нужно
смоделировать что-то действительно сложное, например
паровоз, вам понадобится хорошая исходная информация для
построения модели. Для инженерных сооружений такого типа
обычно существуют двухмерные чертежи, и их можно
разыскать, если воспользоваться библиотекой или Internet. Но
работать по фотографии часто бывает крайне затруднительно.
Если нужно построить корпус корабля или фюзеляж
самолета, попробуйте воспользоваться следующим методом.
Постройте цилиндр, который в дальнейшем послужит основой.
Основания цилиндра будут изображать, соответственно,
переднюю и заднюю части корпуса. Сделайте цилиндр 36гранным и разбейте его на 20 частей. Удалите половину
цилиндра, а затем, двигаясь вдоль него, деформируйте каждое из
сечений, придавая ему нужную форму. В заключение постройте
зеркальное отражение объекта, чтобы получилась вторая
половинка корпуса.
Пейзажи с большим количеством деревьев. Это настоящая
проблема для рендерера (если только эти деревья не нарисованы
на холсте). Возьмите плоский прямоугольник и наложите на
него графическую текстуру с изображением растительности.
Если не приближаться к прямоугольнику слишком близко (и он
постоянно будет повернут фронтально к камере), то такая
«обманка» вполне может сработать. Однако для анимации этот
метод, к сожалению, не подойдет.
Пользуйтесь
клонированием,
если
ваша
система
поддерживает операцию клонирования, предпочтительнее
пользоваться ею, а не операцией копирования. Если объект
клонирован, то все изменения, внесенные в исходный объект,
автоматически будут повторяться во всем клоне. Конечно, это
65
стоит делать только в том случае, когда нужно изменить сразу
все копии исходного объекта. Данный метод очень хорошо
подходит для моделирования деревьев.
Прежде чем тратить долгие часы на моделирование какогонибудь маленького, незначительного объекта в сцене, проверьте
сначала, нельзя ли найти подходящую модель на одном из
многочисленных бесплатных Internet-сайтов. Если речь идет о
коммерческом проекте, можно даже подумать о покупке готовой
модели.
При построении модели сохраняйте ровно то количество
деталей, которое будет соответствовать расстоянию от объекта
до камеры. Запомните: если вы не собираетесь сильно
приближаться к объекту, то лучше воспользоваться текстурой и
изобразить детали графически, а не моделировать каждую
мелочь, увеличивая, таким образом, сложность сцены.
1.
2.
3.
4.
5.
6.
7.
8.
Варианты заданий
Создать «земную твердь» для сцены помещения кафе.
Построить здание кафе.
Создать стул с применением материалов.
Создать стол с применением материалов.
Создать ложку с применением материалов.
Создать вилку с применением материалов.
Создать тарелку с применением материалов.
Создать бокал с применением материалов.
Пример выполнения одного из вариантов заданий
Создать стол и стул.
Ход работы:
 запустить программу 3ds max;
 выбрать инструменты ChamferBox и Box, относящиеся к
разновидности Extended Primitives и Standart Primitives, и создать
параллелепипеды, необходимые для построения стола и стула;
 изобразить предметы мебели;
 установить необходимые параметры параллелепипедов:
 Length (длина);
 Width (ширина);
66
 Height (высота).
 сохранить изображение (Файл\Сохранить) (рисунок).
Рисунок. Моделирование в графическом пакете 3DS MAX.
67
Список рекомендуемой литературы
1. Рубекинг И. Турбо Паскаль для Windows. – М.: Мир-СК
Ферланг Интернешл, 2000.
2. Дж. Фоли, вэн Дем. Основы интерактивной машинной
графики: В 2 кн. - М.: Мир, 1985
3. Роджерс Д., Адамс А. Математические основы машинной
графики. - М.: Радио и связь, 1984
4. Роджерс Д. Алгоритмические основы машинной графики. М.: Мир, 1989
5. Аммерал Л. Принципы программирования в машинной
графике. - М.: СолСистем, 1992
6. Шикин Е.В., Бересков А.В. Компьютерная графика.
Динамика, реалистические изображения. - М.: Диалог-МИФИ,
1995
7. Томпсон Н. Секреты программирования трехмерной графики
для Windows95: Пер. с англ. – СПб.: Питер, 1997
8. Энжел И. Практическое введение в машинную графику. - М.:
Радио и связь, 1984
9. Гилой В. Интерактивная машинная графика. - М.: Мир, 1981.
10. Гюнтер Борн. Форматы данных: Пер. с нем. Киев: Торговоиздательское бюро BHV, 1995
68
Оглавление
Введение
Лабораторная работа 1. Элементы двухмерной
компьютерной графики в Turbo Pascal
Лабораторная работа 2. Элементы
трехмерной
компьютерной графики в Turbo Pascal
Лабораторная работа 3. Программирование статической
графики в Visual BASIC
Лабораторная работа 4. Программирование динамической
графики в Visual BASIC
Лабораторная работа 5 Основы работы с растровым
графическим редактором Photoshop
Лабораторная работа 6. Подготовка презентаций в Power
Point
Лабораторная работа 7. Чертеж в векторном
графическом редакторе Corel Draw
Лабораторная работа 8. Чертеж в специализированном
графическом пакете AutoCad
Лабораторная работа 9. Чертеж в специализированном
графическом пакете FreeHand
Лабораторная работа 10. Чертеж в специализированном
графическом пакете Adobe Illustrator
Лабораторная работа 11. Работа в трехмерном
графическом пакете 3DS MAX
Список используемой литературы
Содержание
69
3
5
14
26
31
41
45
49
56
59
61
64
68
69
Учебное издание
Авторы-составители
Пичугин В. Н.
Фёдоров Р. В.
КОМПЬЮТЕРНАЯ ГРАФИКА
Лабораторный практикум
Редактор О. М. Садовникова
Подписано в печать 29.09.06. Формат 60×84/16. Бумага газетная.
Печать оперативная. Гарнитура Times. Усл. печ. л. 3,95 Уч.-изд.
л. 3,54 Тираж 500 экз. Заказ №
Издательство Чувашского университета
Типография университета
428015 Чебоксары, Московский просп., 15
70
Download