матричный-глобальный-локальный-мир-преобразование

Системы координат важны при работе с графикой и фигурами. Ось координат можно поворачивать для получения новых осей через то же начало координат. Давайте рассмотрим следующие преобразования, включая преобразование Matrix, Global, Local и World с использованием языка C#. Кроме того, давайте изучим следующие преобразования в этой статье:

Матричная, глобальная, локальная и мировая трансформация — установка C# API

Aspose.Drawing for .NET API поддерживает обработку различных объектов рисования. Вы можете легко создавать, редактировать, преобразовывать или визуализировать графику в своих приложениях на основе .NET. Просто загрузите DLL-файл из раздела Новые версии. С другой стороны, вы можете настроить его из NuGet с помощью следующей команды установки:

PM> Install-Package Aspose.Drawing

Программное применение матричного преобразования с использованием C#

Класс Matrix имеет аффинную матрицу 3 на 3, которая представляет преобразование. Вы можете использовать его для поворота, перемещения или масштабирования фигуры в соответствии с вашими требованиями. Следующие шаги объясняют, как применить матричное преобразование:

  1. Создать объект класса Bitmap
  2. Создать форму
  3. Применить матричное преобразование

В приведенном ниже коде показано, как программно применить матричное преобразование с помощью языка C#:

// Инициализировать объект класса Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Объявить объект класса Graphics
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Инициировать объект класса Rectangle
Rectangle originalRentangle = new Rectangle(300, 300, 300, 200);
TransformPath(graphics, originalRentangle, (matrix) => matrix.Rotate(15.0f));
TransformPath(graphics, originalRentangle, (matrix) => matrix.Translate(-250, -250));
TransformPath(graphics, originalRentangle, (matrix) => matrix.Scale(0.3f, 0.3f));

// Сохранить выходное изображение с матричным преобразованием
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\MatrixTransformations_out.png");

private static void TransformPath(Graphics graphics, Rectangle originalRentangle, Action<Matrix> transform)
{
    GraphicsPath path = new GraphicsPath();
    path.AddRectangle(originalRentangle);

    Matrix matrix = new Matrix();
    transform(matrix);
    path.Transform(matrix);

    Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
    graphics.DrawPath(pen, path);
}

Программное применение глобального преобразования координат с помощью C#

Глобальное преобразование используется для преобразования всех графических объектов на чертеже. Вы можете выполнить следующие шаги для применения глобального преобразования координат:

  1. Инициализировать экземпляр класса Bitmap
  2. Объявить объект класса Graphics
  3. Установить вращение
  4. Нарисуйте форму с глобальной трансформацией

Следующий код реализует глобальное преобразование координат программно с использованием C#:

// Инициализировать объект класса Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Установите преобразование, которое применяется к каждому нарисованному элементу:
graphics.RotateTransform(15);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawEllipse(pen, 300, 300, 400, 200);

// Сохраните выходное изображение с преобразованием Glabal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");

Задайте локальное преобразование программно на C#

Локальное преобразование связано с определенными формами или графикой на чертеже. Это можно объяснить преобразованием графического пути, когда преобразуются только элементы этого пути. Вы можете установить локальное преобразование, выполнив следующие действия:

  1. Инициализировать объект класса Bitmap
  2. Объявите объект класса Graphics и GraphicsPath
  3. Создайте форму и определите матрицу
  4. Метод преобразования вызовов

Фрагмент кода ниже объясняет, как программно задать локальное преобразование с помощью C#:

// Инициализировать объект класса Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

GraphicsPath path = new GraphicsPath();
path.AddEllipse(300, 300, 400, 200);

// Установите преобразование, которое применяется к конкретному пути, который нужно нарисовать:
Matrix matrix = new Matrix();
matrix.RotateAt(45, new Point(500, 400));
path.Transform(matrix);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawPath(pen, path);

// Сохранить выходное изображение с локальным преобразованием
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");

Программное применение преобразования мира с помощью C#

Преобразование мировых координат в координаты страницы известно как преобразование мира. Такие координаты страницы затем используются для рендеринга графики на разных устройствах. Таким образом, вы можете применить преобразование мира с помощью C#, выполнив следующие действия:

  1. Инициализировать объект класса Bitmap
  2. Вызов метода TranslateTransform
  3. Нарисуйте фигуру

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

// Инициализировать объект класса Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Установите преобразование, которое отображает мировые координаты в координаты страницы:
graphics.TranslateTransform(500, 400);

Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawRectangle(pen, 0, 0, 300, 200);

// Сохраните выходное изображение с World Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");

Вывод

Короче говоря, вы узнали о различных преобразованиях, связанных с компьютерной графикой и формами. Вы должны быть в состоянии понять детали глобального, локального и глобального преобразования с использованием языка C#. Кроме того, вы можете прочитать Документацию по API для получения более подробной информации или связаться с нами через Бесплатные форумы поддержки. Мы хотели бы помочь вам!

Смотрите также