Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MU1571

.pdf
Скачиваний:
33
Добавлен:
11.05.2015
Размер:
6.46 Mб
Скачать

5.Фотомонтаж: люди + здания. Преобразовать цветное изображение в черно-белое (градации серого). Добавить царапины. Сделать задний фон слегка размытым.

6.Использовав изображения человека, создать вокруг него сияющий

ореол.

7.Использовав любое изображение, создать эффект его отражения от гладкого кафельного пола.

8.Преобразовать фотореалистическое изображение здания, добавив в верхней его части разноцветную подсветку, в нижней части здания – неоновую вывеску.

9.Преобразовать фотореалистическое изображение в изображения различных художественных стилей: рисунок углем, карандашный рисунок, рисунок маслом и акварелью, литографию.

10.Цветное изображение преобразовать в черно-белое (градации серого). Добавить эффект зернистости пленки. Добавить надпись, имитирующую надпись чернилами.

11.Отсканировать старую фотографию и отретушировать ее. Устранить разрывы, царапины и другие дефекты.

10

3. ГРАФИКА В СРЕДЕ PascalABC.NET

PascalABC.NET – система программирования. Язык системы – это реализация Object Pascal для платформы Microsoft.NET, который содержит все основные элементы современных языков программирования: модули, классы, перегрузку операторов, интерфейсы, исключения, обобщенные классы, сборку мусора, а также некоторые средства параллельного программирования [4].

Графические функции среды описаны в модуле GraphABC. Модуль подключается к программе с помощью команды Uses GraphABC;

Основные процедуры и функции модуля GraphABC.

Процедура InitGraph инициирует перевод видеоадаптера в видеорежим.

Общий вид: InitGraph(Driver,Mode,Path);

Здесь Driver – параметр, определяющий графический драйвер; 0 – автоопределение, 9 – VGA.

Mode – параметр, задающий один из графических режимов. Для VGA 0 – 640x200 16 цветов, 1 – 640х350 16 цветов, 2 – 640х480 16 цветов. При автоопределении выбор будет сделан в пользу максимально возможного из режимов.

Path – имя файла и путь графического драйвера.

Процедура DetectGraph – тестирует аппаратуру и определяет, какие максимально допустимые графический драйвер и режим подходят для данного видеоадаптера.

Общий вид: DetectGraph (Driver,Mode);

Здесь Driver – параметр, определяющий подходящий тип графического драйвера.

Mode – параметр, задающий один из графических режимов, поддерживаемых данным драйвером.

Функция GraphResult – возвращает код ошибки графической операции, выполнявшейся последней (табл. 1).

Общий вид: GrapgResult;

11

 

 

 

 

 

Таблица 1

 

Значения, возвращаемые GraphResult

 

 

 

 

 

 

 

 

 

недостаточно памяти

 

недопустимый режим

0

без ошибок

5

10

для выбранного

для загрузки драйвера

 

 

 

 

драйвера

 

 

 

 

 

 

не инициализирован

 

недостаточно памяти

 

общая ошибка

1

6

для просмотра

11

графический режим

 

 

областей

 

 

 

 

 

 

 

 

не удалось определить

 

недостаточно памяти

 

 

2

7

для заполнения

12

ошибка ввода-вывода

 

тип адаптера

 

областей

 

 

 

 

 

 

 

3

не обнаружен файл с

8

не обнаружен файл со

13

неверный формат

драйвером

шрифтом

шрифта

 

 

 

 

обнаруженный файл

 

 

 

 

4

не содержит

9

недостаточно памяти

14

неверный номер

соответствующего

для загрузки шрифта

шрифта

 

 

 

 

драйвера

 

 

 

 

Функция GraphErrorMsg – возвращает текст сообщения об ошибке. Процедура RestoreCrtMode – осуществляет переход в видеорежим

(текстовый), который использовался до перехода в графический режим. Не освобождает память и не сбрасывает параметры графического режима.

Процедура SetGraphMode – устанавливает для используемого драйвера новый графический режим и очищает экран. Переходит в один из доступных режимов для данного драйвера (в отличие от InitGraph).

Общий вид: SetGraphMode(Mode);

Здесь Mode – целое число от 0 до 5, определяющее режим. SetGraphMode устанавливает для всех графических параметров (палитра, цвет, и т. п.) значения по умолчанию, заданные для данного режима.

Функция GetGraphMode – возвращает числовой код используемого в данный момент графического режима. Для VGA это 0,1 или 2.

Функция GetModeName – возвращает строку с именем используемого графического режима.

Функция GetDriverName – возвращает имя (без расширения)

12

используемого в данный момент драйвера.

Функция GetMaxMode – возвращает код предельного графического режима загруженного драйвера, в котором может работать графический адаптер.

Процедура GetModeRange – возвращает диапазон допустимых графических режимов для указанного драйвера.

Общий вид: GetModeRange(Driver,MinMode,MaxMode);

Здесь Driver – код графического драйвера, MinMode – код <минимального> режима,

MaxMode – код предельно допустимого режима для данного драйвера. Процедура CloseGraph – восстанавливает видеорежим (текстовый),

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

Процедура SetColor – устанавливает текущий цвет, взятый из палитры

(табл. 2).

Общий вид: SetColor(Color);

 

 

 

 

 

Таблица 2

 

 

 

Коды цветов

 

 

 

 

 

 

 

 

0

Black

6

Brown

12

LightRed

 

 

 

 

 

 

1

Blue

7

LightGray

13

LightMagenta

 

 

 

 

 

 

2

Green

8

DarkGray

14

Yellow

 

 

 

 

 

 

3

Cyan

9

LightBlue

15

White

 

 

 

 

 

 

4

Red

10

LightGreen

128

Blink

 

 

 

 

 

 

5

Magenta

11

LightCyan

 

 

 

 

 

 

 

 

Функция GetColor – возвращает код текущего цвета.

Функция GetMaxColor – возвращает наибольший код цвета, значение типа Word, который может быть передан процедуре SetColor в качестве параметра.

13

Процедура SetBkColor – устанавливает цвет фона из палитры. Устанавливается для всего экрана.

Общий вид: SetBkColor(Color);

Функция GetBkColor – возвращает значение типа Word – код используемого фона.

Процедура SetFillStyle – определяет шаблон и цвет заполнения.

Общий вид: SetFillStyle(Pattern,Color);

Здесь Pattern – шаблон заполнения, Color – цвет заполнения

Функции GetX и GetY – возвращают координаты по горизонтали (Х) и вертикали (Y) указателя текущей позиции. Координаты GetX и GetY отсчитываются от левого верхнего угла экрана (активного окна), начиная с нуля.

Функции GetMaxX и GetMaxY - возвращают текущие значения (типа Integer) разрешения, т.е. количество точек (пикселей) по осям Х и Y, эти значения зависят от выбранного драйвера и разрешения.

Процедура MoveTo – перемещает указатель текущей позиции в точку с заданными координатами.

Процедура MoveRel – перемещает указатель на заданное расстояние, определяемое приращением координат Х и Y, относительно его текущего местоположения.

Общий вид: MoveRel(Dx,Dy);

Процедура Line – отображает прямую линию между двумя точками, координаты которых заданы в качестве параметров.

Общий вид: Line(x1,y1,x2,y2);

Процедура LineTo – проводит прямую от текущего положения указателя до точки, заданной координатами.

Общий вид: LineTo(X,Y);

X иY – координаты точки.

14

Процедура LineRel – отображает прямую от текущей позиции и до точки, координаты которой получены приращением по Х и У.

Общий вид: LineRel(Dx,Dy);

Dx,Dy – приращения по Х и Y,имеют тип Integer.

Функция GetPixel – возвращает значение типа Word, соответствующее цвету пикселя, координаты которого (X,Y).

Общий вид: GetPixel(X,Y);

Процедура PutPixel – отображает точку в заданной позиции и заданным цветом

Общий вид: PutPixel(x,y,color);

X,Y – координаты точки (типа Integer), Color – ее цвет (типа Word).

Процедура Circle – вычерчивает окружность.

Общий вид: Circle(x,y,Rad);

X,Y – координата точки,

Rad – радиус окружности в пикселях по горизонтали. Процедура Ellipse – вычерчивает эллипс.

Общий вид: Ellipse(X,Y,BAngle,Eangle,XRad,YRad);

X,Y – координаты центра,

Bangle и Eangle – начальный и конечный углы дуги (в радианах), XRad,Yrad – горизонтальный и вертикальных радиус эллипса.

Задание № 3. Параметрический чертёж

Используя указанные выше функции и процедуры на языке Object Pascal, написать программу отрисовки изображения согласно варианту из табл. 3. Размеры получить у преподавателя индивидуально.

Пример программы и её выполнения представлен на рис. 3.

15

Рис. 3. Пример работы программы

16

Таблица 3

Варианты заданий

1

7

2

8

3

9

4

10

5

11

6

12

17

Задание № 4. Масштабирование фигуры

Составить программу изменения размера геометрической фигуры согласно варианту из табл. 3.

Геометрический объект можно масштабировать, т.е. увеличивать или уменьшать по осям координат. Масштабирование может производиться относительно разных точек пространства. Например, относительно начала координат или относительно центра объекта.

При изменении размера фигуры используются коэффициенты масштабирования. Если коэффициент больше единицы, то объект увеличивается. Если коэффициент принадлежит диапазону от 0 до 1, то объект будет уменьшен.

Новые координаты X и Y определяются выражениями:

X = kx * x;

Y = ky * y,

где kx и ky – коэффициенты.

Задание № 5. Перенос геометрических фигур

Составить программу переноса геометрической фигуры согласно варианту из табл. 3. Используя правила переноса, смоделировать движение объекта на экране.

Точка на плоскости задается координатами x1, y1. При переносе ее положение определяется новыми координатами x2, y2:

x2 = x1 + dx,

y2 = y1 + dy.

Так как графический объект представляет собой множество точек, то его можно переносить, применяя уравнение переноса к каждой точке.

18

4. ПРАКТИЧЕСКАЯ РАБОТА В КОМПАС-3D

КОМПАС-3D – система автоматизированного проектирования с возможностями оформления проектной и конструкторской документации согласно стандартам серии ЕСКД и СПДС (рис. 4).

Рис. 4. САПР КОМПАС-3D

Основными компонентами системы являются: модуль трёхмерного твердотельного моделирования, модуль автоматизированного проектирования и модуль проектирования спецификаций.

Задание № 6. Знакомство с системой автоматизированного проектирования КОМПАС-3D

В данной работе необходимо познакомиться с интерфейсом пакета Компас-3D; освоить панели инструментов «Стандартная», «Компактная панель», «Вид», «Текущее состояние», «Геометрия», «Редактирование», «Размеры»; научиться строить «примитивы» (точки, линии, отрезки,

19

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]