矩陣全局局部世界變換

在處理圖形和形狀時,坐標系很重要。可以旋轉坐標軸以獲得通過同一原點的新軸。讓我們使用 C# 語言探索以下轉換,包括 Matrix、Global、Local 和 World 轉換。此外,讓我們通過本文學習以下轉換:

矩陣、全局、局部和世界變換——C# API 安裝

Aspose.Drawing for .NET API 支持處理不同的繪圖對象。您可以在基於 .NET 的應用程序中輕鬆創建、編輯、轉換或渲染圖形。只需從 New Releases 部分下載 DLL 文件。另一方面,您可以使用以下安裝命令從 NuGet 配置它:

PM> Install-Package Aspose.Drawing

使用 C# 以編程方式應用矩陣轉換

Matrix 類有一個 3 x 3 的仿射矩陣,表示變換。您可以根據需要使用它來旋轉、平移或縮放形狀。以下步驟解釋瞭如何應用矩陣變換:

  1. 實例化 Bitmap 類對象
  2. 創建形狀
  3. 應用矩陣變換

下面的代碼顯示瞭如何使用 C# 語言以編程方式應用矩陣變換:

// 初始化位圖類對象
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// 聲明圖形類對象
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 = 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 = 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 = 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 文檔 了解更多詳情,或通過 免費支持論壇 與我們聯繫。我們願意幫助你!

也可以看看