Системи координат важливі під час роботи з графікою та фігурами. Координатну вісь можна обертати для отримання нових осей через те саме начало координат. Давайте розглянемо наступні перетворення, включаючи Матричне, Глобальне, Локальне та Світове перетворення за допомогою мови C#. Крім того, давайте дізнаємося наступні перетворення за допомогою цієї статті:
- Матричне, глобальне, локальне та світове перетворення – встановлення C# API
- Програмне застосування перетворення матриці за допомогою C#
- Програмне застосування глобального перетворення координат за допомогою C#
- Встановити локальне перетворення програмно в C#
- Програмне застосування World Transformation за допомогою 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.
- Створіть форму та визначте матрицю
- Виклик методу Transform
Наведений нижче фрагмент коду пояснює, як установити локальне перетворення програмним шляхом за допомогою 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");
Програмне застосування World Transformation за допомогою 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, щоб дізнатися більше, або зв’язатися з нами через безкоштовні форуми підтримки. Ми раді вам допомогти!