ma trận-toàn cục-cục bộ-thế giới-chuyển đổi

Hệ tọa độ rất quan trọng khi làm việc với đồ họa và hình dạng. Trục tọa độ có thể được xoay để thu được các trục mới qua cùng một gốc. Hãy cùng chúng tôi khám phá các phép biến đổi sau bao gồm phép biến đổi Ma trận, Toàn cục, Cục bộ và Thế giới bằng ngôn ngữ C#. Hơn nữa, hãy cùng chúng tôi tìm hiểu các phép biến hình sau qua bài viết này:

Chuyển đổi ma trận, toàn cầu, cục bộ và thế giới - Cài đặt API C#

API Aspose.Drawing for .NET hỗ trợ xử lý các đối tượng vẽ khác nhau. Bạn có thể dễ dàng tạo, chỉnh sửa, chuyển đổi hoặc kết xuất đồ họa trong các ứng dụng dựa trên .NET của mình. Chỉ cần tải xuống tệp DLL từ phần Bản phát hành mới. Mặt khác, bạn có thể cấu hình nó từ NuGet bằng lệnh cài đặt sau:

PM> Install-Package Aspose.Drawing

Áp dụng chuyển đổi ma trận có lập trình bằng C#

Lớp Ma trận có ma trận 3 x 3 biểu thị phép biến đổi. Bạn có thể sử dụng nó để Xoay, Dịch hoặc Chia tỷ lệ một hình dạng theo yêu cầu của bạn. Các bước sau giải thích cách áp dụng phép biến đổi ma trận:

  1. Khởi tạo đối tượng lớp Bitmap
  2. Tạo một hình dạng
  3. Áp dụng phép biến đổi Ma trận

Đoạn mã dưới đây cho thấy cách áp dụng lập trình chuyển đổi ma trận bằng ngôn ngữ C#:

// Khởi tạo đối tượng lớp Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Khai báo đối tượng lớp Graphics
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Khởi tạo đối tượng lớp 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));

// Lưu hình ảnh đầu ra với phép biến đổi Ma trận
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);
}

Áp dụng chuyển đổi tọa độ toàn cầu có lập trình với C#

Phép biến đổi toàn cục được sử dụng để biến đổi tất cả các đối tượng đồ họa trong một bản vẽ. Bạn có thể làm theo các bước bên dưới để áp dụng phép chuyển đổi tọa độ toàn cục:

  1. Khởi tạo một phiên bản của lớp Bitmap
  2. Khai báo đối tượng lớp Đồ họa
  3. Đặt xoay
  4. Vẽ một hình dạng với Chuyển đổi toàn cầu

Đoạn mã sau đây lập trình biến đổi tọa độ toàn cục bằng cách sử dụng C#:

// Khởi tạo đối tượng lớp Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Đặt một biến đổi áp dụng cho mọi mục được vẽ:
graphics.RotateTransform(15);

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

// Lưu hình ảnh đầu ra với phép biến đổi Glabal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");

Đặt chuyển đổi cục bộ theo chương trình trong C#

Biến đổi cục bộ có liên quan đến các hình dạng hoặc đồ họa cụ thể trong bản vẽ. Nó có thể được giải thích với sự chuyển đổi của một đường dẫn đồ họa trong đó chỉ các mục của đường dẫn đó được biến đổi. Bạn có thể đặt chuyển đổi cục bộ bằng các bước sau:

  1. Khởi tạo một đối tượng của lớp Bitmap
  2. Khai báo đối tượng lớp Graphics và GraphicsPath
  3. Tạo hình dạng và xác định Ma trận
  4. Phương thức chuyển đổi cuộc gọi

Đoạn mã bên dưới giải thích cách đặt chuyển đổi cục bộ theo chương trình bằng C#:

// Khởi tạo đối tượng lớp 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);

// Đặt một phép chuyển đổi áp dụng cho đường dẫn cụ thể sẽ được vẽ:
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);

// Lưu hình ảnh đầu ra với chuyển đổi cục bộ
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");

Áp dụng chuyển đổi thế giới có lập trình bằng C#

Việc chuyển đổi tọa độ Thế giới sang tọa độ Trang được gọi là Chuyển đổi thế giới. Các tọa độ trang như vậy sau đó được sử dụng để hiển thị đồ họa trên các thiết bị khác nhau. Vì vậy, bạn có thể áp dụng chuyển đổi thế giới bằng C# với các bước dưới đây:

  1. Khởi tạo một đối tượng của lớp Bitmap
  2. Gọi phương thức TranslateTransform
  3. Vẽ một hình dạng

Đoạn mã sau cho thấy cách áp dụng lập trình chuyển đổi thế giới bằng ngôn ngữ C#:

// Khởi tạo đối tượng lớp Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Đặt phép biến đổi ánh xạ tọa độ thế giới thành tọa độ trang:
graphics.TranslateTransform(500, 400);

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

// Lưu hình ảnh đầu ra với World Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");

Sự kết luận

Tóm lại, bạn đã học về các phép biến đổi khác nhau liên quan đến đồ họa và hình dạng máy tính. Bạn phải có thể hiểu chi tiết về sự chuyển đổi Toàn cầu, Cục bộ và Thế giới bằng ngôn ngữ C#. Hơn nữa, bạn có thể đọc Tài liệu API để biết thêm chi tiết hoặc liên hệ với chúng tôi qua Diễn đàn hỗ trợ miễn phí. Chúng tôi muốn giúp bạn!

Xem thêm