在處理圖形和形狀時,坐標系很重要。可以旋轉坐標軸以獲得通過同一原點的新軸。讓我們使用 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 的仿射矩陣,表示變換。您可以根據需要使用它來旋轉、平移或縮放形狀。以下步驟解釋瞭如何應用矩陣變換:
- 實例化 Bitmap 類對象
- 創建形狀
- 應用矩陣變換
下面的代碼顯示瞭如何使用 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# 以編程方式應用全局坐標轉換
全局變換用於變換繪圖中的所有圖形對象。您可以按照以下步驟應用全局坐標變換:
- 初始化 Bitmap 類的實例
- 聲明 Graphics 類對象
- 設置旋轉
- 使用全局變換繪製形狀
以下代碼使用 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# 中以編程方式設置本地轉換
局部變換與繪圖中的特定形狀或圖形有關。它可以用圖形路徑的轉換來解釋,其中只有該路徑的項目被轉換。您可以通過以下步驟設置本地轉換:
- 初始化 Bitmap 類的對象
- 聲明 Graphics 和 GraphicsPath 類對象
- 創建形狀並定義矩陣
- 調用轉換方法
下面的代碼片段解釋瞭如何使用 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# 應用世界變換:
- 初始化 Bitmap 類的對象
- 調用 TranslateTransform 方法
- 繪製形狀
以下代碼顯示瞭如何使用 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 文檔 了解更多詳情,或通過 免費支持論壇 與我們聯繫。我們願意幫助你!