Компьютерная графика. Лабораторная работа 2. Вариант 3. Реализация двумерных аффинных преобразований

Лабораторная работа
в среде программирования Basic



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: Basic

Название работы: Компьютерная графика. Лабораторная работа 2. Вариант 3. Реализация двумерных аффинных преобразований

Вид работы: Лабораторная работа

Описание: Компьютерная графика.
Лабораторная работа 2.
Вариант 3.
2.2 Лабораторная работа № 2 «Реализация двумерных аффинных преобразований»
Цель работы: приобретение навыков моделирования двумерных изображений и применения аффинных преобразований.
Как известно, все изменения изображений можно выполнить
с помощью трех базовых операций: переноса; масштабирования
(увеличения или уменьшения размеров); отражения и поворота
изображения. Двумерные фигуры представляются в виде трехмерной матрицы с использованием однородных координат, для того чтобы применить следующие аффинные преобразования:
I. Матрица поворота:
cos sin 0
sin cos 0
0 0 1
R
II. Матрица масштабирования:
0 0
0 0
0 0 1
D
7
III. Матрица отражения:
1 0 0
0 1 0
0 0 1
M
.
IV. Матрица переноса:
1 0 0
0 1 0
1
T
=
.
Преобразования производятся умножением матриц преобразований на матрицу вершин фигуры и присваиванием новых значений последним. Таким образом, преобразования выполняются
над множеством вершин фигуры, после чего результат преобразований отображается с новыми координатами.
Пример: Построить матрицу растяжения с коэффициентом
растяжения вдоль оси абсцисс и вдоль оси ординат и с центром в точке А(а,b).
Шаг 1. Перенос на вектор –А(–а,–b) для смещения центра
растяжения с началом координат:
1 0 0
0 1 0
1
a b
Шаг 2. Растяжение вдоль координатных осей с коэффициентами. Матрица преобразования имеет вид:
0 0
0 0
0 0 1
D
8
Шаг 3. Перенос на вектор А(а,b) для возвращения центра
растяжения в прежнее положение:
1 0 0
0 1 0 .
1
a b
=
Перемножив матрицы в том же порядке
T D T A A
, получим вид нашего преобразования:
0 0
( ', ',1) ( , ,1) 0 0
(1 ) (1 ) 1
x y x y
a b
Для выполнения преобразований необходимо знать основные положения матричной алгебры.
Пусть матрица
A
имеет размерность
k m
, матрица
B
размерности
m n
. Результирующая матрица будет иметь порядок
k n
:
1
m
ij ik kj
k
c a b
=
= .
Важно:
Для реализации аффинных преобразований необходимо использовать однородные координаты, поэтому каждая вершина
фигуры будет задана тройкой чисел:
( , ,1).
Матрицы преобразований будут иметь размерность
3 3 .
Порядок выполнения работы:
– Изучение теоретических основ аффинных преобразований — стр. 40—47 учебного пособия.
– Выбор среды программирования и программная реализация построения 2D изображения согласно варианту задания;
– Организация интерфейса последовательного выполнения
поворота, масштабирования, отражения и сдвига фигуры.
– Написание отчета о выполнении лабораторной работе № 2.
Задание:
Согласно варианту заданий, приведенных в приложении 2,
построить двумерное изображение заданной фигуры. Над фигурой выполнить все аффинные преобразования: перенос, отражение, масштабирование, поворот.

Год: 2024

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2024-м году, в рамках этого заказа была разработана программа в среде программирования Basic. Если у Вас похожее задание на программу, которую нужно написать на Basic, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2024-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +79374242235
Viber: +79374242235
Telegram: kursovikcom
ВКонтакте: kursovikcom
WhatsApp +79374242235
E-mail: info@kursovik.com
Skype: kursovik.com