Системы координат важны при работе с графикой и фигурами. Ось координат можно поворачивать для получения новых осей через то же начало координат. Давайте рассмотрим следующие преобразования, включая преобразование Matrix, Global, Local и World с использованием языка C#. Кроме того, давайте изучим следующие преобразования в этой статье:
- Матричная, глобальная, локальная и мировая трансформация — установка C# API
- Программное применение матричного преобразования с использованием C#
- Программное применение глобального преобразования координат с помощью C#
- Задайте локальное преобразование программно на C#
- Программное применение преобразования мира с помощью C#
Матричная, глобальная, локальная и мировая трансформация — установка C# API
Aspose.Drawing for .NET API поддерживает обработку различных объектов рисования. Вы можете легко создавать, редактировать, преобразовывать или визуализировать графику в своих приложениях на основе .NET. Просто загрузите DLL-файл из раздела Новые версии. С другой стороны, вы можете настроить его из NuGet с помощью следующей команды установки:
PM> Install-Package Aspose.Drawing
Программное применение матричного преобразования с использованием C#
Класс Matrix имеет аффинную матрицу 3 на 3, которая представляет преобразование. Вы можете использовать его для поворота, перемещения или масштабирования фигуры в соответствии с вашими требованиями. Следующие шаги объясняют, как применить матричное преобразование:
- Создать объект класса Bitmap
- Создать форму
- Применить матричное преобразование
В приведенном ниже коде показано, как программно применить матричное преобразование с помощью языка 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#
Глобальное преобразование используется для преобразования всех графических объектов на чертеже. Вы можете выполнить следующие шаги для применения глобального преобразования координат:
- Инициализировать экземпляр класса Bitmap
- Объявить объект класса Graphics
- Установить вращение
- Нарисуйте форму с глобальной трансформацией
Следующий код реализует глобальное преобразование координат программно с использованием 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#
Локальное преобразование связано с определенными формами или графикой на чертеже. Это можно объяснить преобразованием графического пути, когда преобразуются только элементы этого пути. Вы можете установить локальное преобразование, выполнив следующие действия:
- Инициализировать объект класса Bitmap
- Объявите объект класса Graphics и GraphicsPath
- Создайте форму и определите матрицу
- Метод преобразования вызовов
Фрагмент кода ниже объясняет, как программно задать локальное преобразование с помощью 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#, выполнив следующие действия:
- Инициализировать объект класса Bitmap
- Вызов метода TranslateTransform
- Нарисуйте фигуру
В следующем коде показано, как программно применить преобразование мира с помощью языка 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 для получения более подробной информации или связаться с нами через Бесплатные форумы поддержки. Мы хотели бы помочь вам!