Применяет указанный вектор ссмещения к этому объекту 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);
}
Контрольные вопросы: Какие преобразования называются аффинными?
Назовите три основных вида аффинных преобразований.
Какие координаты называются однородными координатами точки?
Приведите вид следующих матриц:
Матрица вращения.
Матрица растяжения.
Матрица отражения.
Матрица переноса.
Укажите строки программного кода вашей программы, которые выполняют преобразования:
вращения, переноса, растяжения.
Похожие работы
Тема: Преобразования в деревне |
Предмет/Тип: География, экономическая география (Реферат) |
Тема: Преобразования Петра І |
Предмет/Тип: История (Реферат) |
Тема: Аффинные преобразования |
Предмет/Тип: Математика (Курсовая работа (т)) |
Тема: Преобразования плоскости |
Предмет/Тип: Математика (Реферат) |
Тема: Преобразования Петра І |
Предмет/Тип: История (Реферат) |
Интересная статья: Основы написания курсовой работы