
Układy współrzędnych są ważne podczas pracy z grafiką i kształtami. Oś współrzędnych można obracać, aby uzyskać nowe osie przechodzące przez ten sam początek. Przyjrzyjmy się następującym przekształceniom, w tym transformacji Matrix, Global, Local i World przy użyciu języka C#. Co więcej, poznajmy następujące przekształcenia z tego artykułu:
- Transformacja Matrix, Globalna, Lokalna i Światowa – Instalacja C# API
- Zastosuj programowo transformację macierzy przy użyciu języka C#
- Zastosuj globalną transformację współrzędnych programowo za pomocą C#
- Programowo ustaw lokalną transformację w C#
- Zastosuj programową transformację świata przy użyciu języka C#
Transformacja Matrix, Globalna, Lokalna i Światowa – Instalacja C# API
Aspose.Drawing for .NET API obsługuje przetwarzanie różnych obiektów rysunkowych. Możesz łatwo tworzyć, edytować, przekształcać lub renderować grafikę w aplikacjach opartych na platformie .NET. Wystarczy pobrać plik DLL z sekcji Nowe wydania. Z drugiej strony możesz skonfigurować go z NuGet za pomocą następującego polecenia instalacji:
PM> Install-Package Aspose.Drawing
Zastosuj programowo transformację macierzy przy użyciu języka C#
Klasa Matrix ma macierz afiniczną 3 na 3, która reprezentuje transformację. Możesz go użyć do obracania, tłumaczenia lub skalowania kształtu zgodnie z własnymi wymaganiami. Poniższe kroki wyjaśniają, jak zastosować przekształcenie macierzowe:
- Utwórz instancję obiektu klasy Bitmap.
- Utwórz kształt
- Zastosuj transformację Matrix
Poniższy kod pokazuje, jak programowo zastosować transformację macierzy przy użyciu języka C#:
// Zainicjuj obiekt klasy Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
// Zadeklaruj obiekt klasy Graphics
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));
// Zainicjuj obiekt klasy 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));
// Zapisz obraz wyjściowy z transformacją Matrix
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);
}
Zastosuj globalną transformację współrzędnych programowo za pomocą C#
Transformacja globalna służy do przekształcania wszystkich obiektów graficznych na rysunku. Możesz wykonać poniższe kroki, aby zastosować globalną transformację współrzędnych:
- Zainicjuj instancję klasy Bitmap
- Zadeklaruj obiekt klasy Graphics.
- Ustaw obrót
- Narysuj kształt za pomocą Globalnej transformacji
Poniższy kod opracowuje globalną transformację współrzędnych programowo przy użyciu języka C#:
// Zainicjuj obiekt klasy Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));
// Ustaw transformację, która ma zastosowanie do każdego narysowanego elementu:
graphics.RotateTransform(15);
Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawEllipse(pen, 300, 300, 400, 200);
// Zapisz obraz wyjściowy za pomocą transformacji Glabal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");
Programowo ustaw lokalną transformację w C#
Transformacja lokalna jest związana z określonymi kształtami lub grafiką na rysunku. Można to wytłumaczyć transformacją ścieżki graficznej, w której transformowane są tylko elementy tej ścieżki. Możesz ustawić lokalną transformację, wykonując następujące czynności:
- Zainicjuj obiekt klasy Bitmap
- Zadeklaruj obiekt klasy Graphics i GraphicsPath.
- Utwórz kształt i zdefiniuj Matrix
- Wywołaj metodę Transform
Poniższy fragment kodu wyjaśnia, jak programowo ustawić transformację lokalną przy użyciu języka C#:
// Zainicjuj obiekt klasy 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);
// Ustaw transformację, która ma zastosowanie do określonej ścieżki do narysowania:
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);
// Zapisz obraz wyjściowy za pomocą transformacji lokalnej
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");
Zastosuj programową transformację świata przy użyciu języka C#
Konwersja współrzędnych świata na współrzędne strony jest znana jako transformacja świata. Takie współrzędne strony są następnie wykorzystywane do renderowania grafiki na różnych urządzeniach. Możesz więc zastosować transformację świata za pomocą C#, wykonując poniższe czynności:
- Zainicjuj obiekt klasy Bitmap
- Wywołaj metodę TranslateTransform.
- Narysuj kształt
Poniższy kod pokazuje, jak programowo zastosować transformację świata przy użyciu języka C#:
// Zainicjuj obiekt klasy Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));
// Ustaw transformację, która odwzorowuje współrzędne świata na współrzędne strony:
graphics.TranslateTransform(500, 400);
Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 2);
graphics.DrawRectangle(pen, 0, 0, 300, 200);
// Zapisz obraz wyjściowy za pomocą World Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");
Wniosek
Krótko mówiąc, poznałeś różne przekształcenia związane z grafiką komputerową i kształtami. Musisz być w stanie zrozumieć szczegóły transformacji globalnej, lokalnej i światowej za pomocą języka C#. Ponadto możesz przeczytać Dokumentację interfejsu API, aby uzyskać więcej informacji lub skontaktować się z nami za pośrednictwem Bezpłatnych forów pomocy technicznej. Z przyjemnością Ci pomożemy!