Читать практическое задание по информационному обеспечению, программированию: "2D преобразования" Страница 3

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

Применяет указанный вектор ссмещения к этому объекту Matrix в указанном порядке.Умножает каждый вектор массива на матрицу. Элементы смещения данной матрицы (третья строка) игнорируются.

Свойства

Имя ОписаниеПолучает массив значений с плавающей запятой, представляющий элементы этого объекта Matrix.Получает значение, определяющее, является ли объект Matrix единичной матрицей.Возвращает значение, указывающее, является ли матрица Matrix обратимой.Получает значение смещения по оси x (значение dx, или элемент на пересечении третьей строки и первого столбца) объекта Matrix.Получает значение смещения по оси y (значение dy, или элемент на пересечении третьей строки и второго столбца) для этого объекта Matrix.

Пример:

Следующий пример кода предназначен для использования совместно с Windows Forms; для него необходим объект PaintEventArgse и обработчик события Paint. Этот код выполняет следующие действия:

Создает массив точек, формирующих прямоугольник.

Выводит данный массив точек на экран перед применением преобразования изменения масштаба (синий прямоугольник).

Создает матрицу, изменяет ее масштаб в 3 раза по оси X и в 2 раза по оси Y и смещает ее на 100 по обеим осям.

Выводит элементы матрицы на экран.

Применяет данное матричное преобразование к массиву точек.

Выводит преобразованный массив на экран (красный прямоугольник).

Обратите внимание, что красный прямоугольник был увеличен в 3 раза по оси X и в 2 раза по оси Y, включая левый верхний угол (начальную точку прямоугольника), но вектор смещения (последние два элемента матрицы) игнорируется. public void TransformVectors([] pts

)void TransformVectorsExample(PaintEventArgs e)

{myPen = new Pen(Color.Blue, 1);myPen2 = new Pen(Color.Red, 1); // Create an array of points.[] myArray =

{Point(20, 20),Point(120, 20),Point(120, 120),Point(20, 120),Point(20,20)

};

// Draw the Points to the screen before applying the

// transform..Graphics.DrawLines(myPen, myArray);

// Create a matrix, scale it, and translate it.myMatrix = new Matrix();.Scale(3, 2, MatrixOrder.Append);.Translate(100, 100, MatrixOrder.Append);

// List the matrix elements to the screen.(e,,

"Scaled and Translated Matrix", 6, 20);

// Apply the transform to the array..TransformVectors(myArray);

// Draw the Points to the screen again after applying the

// transform..Graphics.DrawLines(myPen2, myArray);

}

Контрольные вопросы: Какие преобразования называются аффинными?

Назовите три основных вида аффинных преобразований.

Какие координаты называются однородными координатами точки?

Приведите вид следующих матриц:

Матрица вращения.

Матрица растяжения.

Матрица отражения.

Матрица переноса.

Укажите строки программного кода вашей программы, которые выполняют преобразования:

вращения, переноса, растяжения.


Интересная статья: Основы написания курсовой работы