matriz-global-local-mundo-transformación

Los sistemas de coordenadas son importantes al trabajar con gráficos y formas. El eje de coordenadas se puede rotar para obtener nuevos ejes a través del mismo origen. Exploremos las siguientes transformaciones, incluida la transformación Matrix, global, local y mundial mediante el lenguaje C#. Además, aprendamos las siguientes transformaciones a través de este artículo:

Transformación Matrix, global, local y mundial: instalación de la API de C#

Aspose.Drawing for .NET La API admite el procesamiento de diferentes objetos de dibujo. Puede crear, editar, transformar o renderizar gráficos fácilmente en sus aplicaciones basadas en .NET. Simplemente descargue el archivo DLL de la sección Nuevos lanzamientos. Por otro lado, puedes configurarlo desde NuGet con el siguiente comando de instalación:

PM> Install-Package Aspose.Drawing

Aplicar Matrix Transformation Programáticamente usando C#

La clase Matrix tiene una matriz afín de 3 por 3 que representa la transformación. Puede usarlo para rotar, traducir o escalar una forma según sus requisitos. Los siguientes pasos explican cómo aplicar la transformación de matriz:

  1. Instanciar Bitmap objeto de clase
  2. Crear una forma
  3. Aplicar transformación de matriz

El siguiente código muestra cómo aplicar la transformación de matriz mediante programación utilizando el lenguaje C#:

// Inicializar objeto de clase de Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Declarar objeto de clase Graphics
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Iniciar objeto de clase 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));

// Guarde la imagen de salida con la transformación 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);
}

Aplicar la transformación de coordenadas globales mediante programación con C#

La transformación global se utiliza para transformar todos los objetos gráficos de un dibujo. Puede seguir los pasos a continuación para aplicar la transformación de coordenadas globales:

  1. Inicializar una instancia de la clase Bitmap
  2. Declarar objeto de clase Graphics
  3. Establecer rotación
  4. Dibuja una forma con Transformación global

El siguiente código elabora la transformación de coordenadas globales mediante programación usando C#:

// Inicializar objeto de clase de Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Establezca una transformación que se aplique a cada elemento dibujado:
graphics.RotateTransform(15);

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

// Guarde la imagen de salida con la transformación Glabal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");

Establecer la transformación local mediante programación en C#

La transformación local está relacionada con formas o gráficos específicos en un dibujo. Se puede explicar con la transformación de una ruta de gráficos donde solo se transforman los elementos de esa ruta. Puede configurar la transformación local con los siguientes pasos:

  1. Inicializar un objeto de la clase Bitmap
  2. Declare el objeto de clase Graphics y GraphicsPath
  3. Crear una forma y definir Matrix
  4. Llamar al método de transformación

El fragmento de código a continuación explica cómo configurar la transformación local mediante programación usando C#:

// Inicializar objeto de clase de 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);

// Establezca una transformación que se aplique a la ruta específica que se va a dibujar:
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);

// Guardar imagen de salida con transformación local
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");

Aplicar World Transformation Programáticamente usando C#

La conversión de coordenadas mundiales a coordenadas de página se conoce como transformación mundial. Dichas coordenadas de página se utilizan luego para representar gráficos en diferentes dispositivos. Entonces puede aplicar la transformación mundial usando C# con los pasos a continuación:

  1. Inicializar un objeto de la clase Bitmap
  2. Llamar al método TranslateTransform
  3. dibujar una forma

El siguiente código muestra cómo aplicar la transformación del mundo mediante programación utilizando el lenguaje C#:

// Inicializar objeto de clase de Bitmap
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Establezca la transformación que asigna las coordenadas del mundo a las coordenadas de la página:
graphics.TranslateTransform(500, 400);

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

// Guardar imagen de salida con World Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");

Conclusión

En pocas palabras, ha aprendido acerca de diferentes transformaciones relacionadas con gráficos y formas por computadora. Debe poder comprender los detalles de la transformación global, local y mundial mediante el lenguaje C#. Además, puede leer la Documentación de la API para obtener más detalles o ponerse en contacto con nosotros a través de los Foros de soporte gratuitos. ¡Nos encantaría ayudarte!

Ver también