Поделиться через


Использование объемного преобразования

Обновлен: Ноябрь 2007

Объемное преобразование является свойством класса Graphics. Числа, определяющие объемное преобразование, хранятся в объекте Matrix, представляющем собой матрицу размером 3×3. Классы Matrix и Graphics содержат различные методы для установки элементов матрицы объемного преобразования.

Различные типы преобразований

В следующем примере код создает прямоугольник 50×50 и помещает его в точку начала координат (0, 0). Начало координат располагается в верхнем левом углу клиентской области.

Dim rect As New Rectangle(0, 0, 50, 50)
Dim pen As New Pen(Color.FromArgb(128, 200, 0, 200), 2)
e.Graphics.DrawRectangle(pen, rect)

Rectangle rect = new Rectangle(0, 0, 50, 50);
Pen pen = new Pen(Color.FromArgb(128, 200, 0, 200), 2);
e.Graphics.DrawRectangle(pen, rect);

В следующем коде к прямоугольнику применяется масштабирование; коэффициент для оси x равен 1,75, а для оси y — 0,5.

e.Graphics.ScaleTransform(1.75F, 0.5F)
e.Graphics.DrawRectangle(pen, rect)

e.Graphics.ScaleTransform(1.75f, 0.5f);
e.Graphics.DrawRectangle(pen, rect); 

Результатом преобразования является прямоугольник, который длиннее исходного по оси x и короче его по оси y.

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

e.Graphics.ResetTransform()
e.Graphics.RotateTransform(28) ' 28 degrees
e.Graphics.DrawRectangle(pen, rect)

e.Graphics.ResetTransform();
e.Graphics.RotateTransform(28); // 28 degrees
e.Graphics.DrawRectangle(pen, rect);

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

e.Graphics.ResetTransform()
e.Graphics.TranslateTransform(150, 150)
e.Graphics.DrawRectangle(pen, rect)

e.Graphics.ResetTransform();
e.Graphics.TranslateTransform(150, 150);
e.Graphics.DrawRectangle(pen, rect);

См. также

Ссылки

Matrix

Другие ресурсы

Системы координат и преобразования

Использование преобразований в управляемом GDI+