매트릭스-글로벌-로컬-월드-변환

좌표계는 그래픽과 모양으로 작업할 때 중요합니다. 동일한 원점을 통해 새 축을 얻기 위해 좌표축을 회전할 수 있습니다. 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 bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Graphics 클래스 객체 선언
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. 그래픽 클래스 객체 선언
  3. 회전 설정
  4. Global Transformation으로 도형 그리기

다음 코드는 C#을 사용하여 프로그래밍 방식으로 전역 좌표 변환을 자세히 설명합니다.

// Bitmap 클래스 객체 초기화
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. 모양 생성 및 Matrix 정의
  4. 변환 메서드 호출

아래 코드 조각은 C#을 사용하여 프로그래밍 방식으로 로컬 변환을 설정하는 방법을 설명합니다.

// 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);

// 그릴 특정 경로에 적용되는 변환을 설정합니다.
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#을 사용하여 프로그래밍 방식으로 World Transformation 적용

World 좌표를 Page 좌표로 변환하는 것을 World Transformation이라고 합니다. 그런 다음 이러한 페이지 좌표는 다른 장치에서 그래픽을 렌더링하는 데 사용됩니다. 따라서 아래 단계에 따라 C#을 사용하여 세계 변환을 적용할 수 있습니다.

  1. Bitmap 클래스의 객체 초기화
  2. TranslateTransform 메서드 호출
  3. 도형 그리기

다음 코드는 C# 언어를 사용하여 프로그래밍 방식으로 세계 변환을 적용하는 방법을 보여줍니다.

// Bitmap 클래스 객체 초기화
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 문서를 읽거나 무료 지원 포럼을 통해 당사에 문의할 수 있습니다. 우리는 당신을 돕고 싶습니다!

또한보십시오