transformação-matriz-global-local-mundo-

Os sistemas de coordenadas são importantes ao trabalhar com gráficos e formas. O eixo de coordenadas pode ser girado para obter novos eixos pela mesma origem. Vamos explorar as seguintes transformações, incluindo a transformação Matrix, Global, Local e World usando a linguagem C#. Além disso, vamos aprender as seguintes transformações através deste artigo:

Transformação Matriz, Global, Local e Mundial – Instalação da API C#

Aspose.Drawing for .NET API suporta o processamento de diferentes objetos de desenho. Você pode facilmente criar, editar, transformar ou renderizar gráficos em seus aplicativos baseados em .NET. Basta baixar o arquivo DLL da seção Novos lançamentos. Por outro lado, você pode configurá-lo de NuGet com o seguinte comando de instalação:

PM> Install-Package Aspose.Drawing

Aplicar transformação de matriz programaticamente usando C#

A classe Matrix tem uma matriz afim de 3 por 3 que representa a transformação. Você pode usá-lo para girar, traduzir ou dimensionar uma forma de acordo com seus requisitos. As etapas a seguir explicam como aplicar a transformação de matrizes:

  1. Instanciar objeto de classe Bitmap
  2. Criar uma forma
  3. Aplicar transformação de matriz

O código abaixo mostra como aplicar a transformação de matrizes programaticamente usando a linguagem C#:

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

// Declare o objeto da classe Graphics
Graphics graphics = Graphics.FromImage(bitmap);
graphics.Clear(Color.FromKnownColor(KnownColor.Gray));

// Iniciar objeto da classe 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));

// Salve a imagem de saída com a transformação 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);
}

Aplique a transformação de coordenadas globais programaticamente com C#

A transformação global é usada para transformar todos os objetos gráficos em um desenho. Você pode seguir as etapas abaixo para aplicar a transformação de coordenadas globais:

  1. Inicializar uma instância da classe Bitmap
  2. Declare o objeto de classe Graphics
  3. Definir rotação
  4. Desenhe uma forma com Transformação Global

O código a seguir elabora a transformação de coordenadas globais programaticamente usando C#:

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

// Defina uma transformação que se aplica a cada item desenhado:
graphics.RotateTransform(15);

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

// Salvar imagem de saída com transformação Glabal
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\GlobalTransformation_out.png");

Definir transformação local programaticamente em C#

A transformação local está relacionada a formas ou gráficos específicos em um desenho. Isso pode ser explicado com a transformação de um caminho gráfico onde apenas os itens desse caminho são transformados. Você pode definir a transformação local com as seguintes etapas:

  1. Inicializar um objeto da classe Bitmap
  2. Declare o objeto de classe Graphics e GraphicsPath
  3. Criar uma forma e definir Matrix
  4. Chamar método Transform

O trecho de código abaixo explica como definir a transformação local programaticamente usando C#:

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

// Defina uma transformação que se aplique ao caminho específico a ser desenhado:
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);

// Salvar imagem de saída com transformação local
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\LocalTransformation_out.png");

Aplicar a transformação mundial programaticamente usando C#

A conversão de coordenadas do mundo para coordenadas de página é conhecida como transformação do mundo. Essas coordenadas de página são usadas para renderizar gráficos em diferentes dispositivos. Assim, você pode aplicar a transformação do mundo usando C# com as etapas abaixo:

  1. Inicializar um objeto da classe Bitmap
  2. Chame o método TranslateTransform
  3. Desenhe uma forma

O código a seguir mostra como aplicar a transformação do mundo programaticamente usando a linguagem C#:

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

// Defina a transformação que mapeia as coordenadas mundiais para as coordenadas da página:
graphics.TranslateTransform(500, 400);

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

// Salvar imagem de saída com World Transformation
bitmap.Save(dataDir + @"CoordinateSystemsTransformations\WorldTransformation_out.png");

Conclusão

Em poucas palavras, você aprendeu sobre diferentes transformações relacionadas a computação gráfica e formas. Você deve ser capaz de entender os detalhes da transformação global, local e mundial usando a linguagem C#. Além disso, você pode ler a Documentação da API para obter mais detalhes ou entrar em contato conosco através dos Fóruns de suporte gratuito. Adoraríamos ajudá-lo!

Veja também