Использование объемного преобразования
Преобразование мира является свойством класса Graphics . Числа, определяющие преобразование мира, хранятся в объекте Matrix , который представляет матрицу 3 ×3. Классы Matrix и Graphics имеют несколько методов для задания чисел в матрице преобразования мира. Примеры в этом разделе управляют прямоугольниками, так как прямоугольники легко рисовать и легко увидеть влияние преобразований на прямоугольники.
Сначала мы создадим прямоугольник 50 на 50 и найдем его в источнике (0, 0). Начало координат располагается в левом верхнем углу клиентской области.
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.DrawRectangle(&pen, rect);
В следующем коде к прямоугольнику применяется масштабирование; коэффициент для оси x равен 1,75, а для оси y — 0,5.
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.ScaleTransform(1.75f, 0.5f);
graphics.DrawRectangle(&pen, rect);
Результатом преобразования является прямоугольник, который длиннее исходного по оси x и короче его по оси y.
Чтобы повернуть прямоугольник вместо масштабирования, используйте следующий код вместо предыдущего кода:
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.RotateTransform(28.0f);
graphics.DrawRectangle(&pen, rect);
Чтобы преобразовать прямоугольник, можно использовать следующий код:
Rect rect(0, 0, 50, 50);
Pen pen(Color(255, 255, 0, 0), 0);
graphics.TranslateTransform(150.0f, 150.0f);
graphics.DrawRectangle(&pen, rect);