전역 변환 사용
전역 변환은 Graphics 클래스의 속성입니다. 전역 변환을 지정하는 숫자는 3×3 매트릭스를 나타내는 Matrix 개체에 저장됩니다. Matrix 클래스와 Graphics 클래스에는 전역 변환 매트릭스에 숫자를 설정하기 위한 메서드가 여러 개 있습니다.
여러 종류의 변환
다음 예제의 코드에서는 먼저 50×50 사각형을 만들어 원점(0, 0)에 배치합니다. 원점은 클라이언트 영역의 왼쪽 위 모퉁이에 있습니다.
Dim rect As New Rectangle(0, 0, 50, 50)
Dim pen As New Pen(Color.FromArgb(128, 200, 0, 200), 2)
e.Graphics.DrawRectangle(pen, rect)
Rectangle rect = new Rectangle(0, 0, 50, 50);
Pen pen = new Pen(Color.FromArgb(128, 200, 0, 200), 2);
e.Graphics.DrawRectangle(pen, rect);
아래 코드에서는 사각형을 x 방향으로 1.75배 확장하고 y 방향으로 0.5배 축소하는 배율 조정 변환을 적용합니다.
e.Graphics.ScaleTransform(1.75F, 0.5F)
e.Graphics.DrawRectangle(pen, rect)
e.Graphics.ScaleTransform(1.75f, 0.5f);
e.Graphics.DrawRectangle(pen, rect);
이 코드를 실행하면 원래의 사각형보다 x 방향은 더 길고 y 방향은 더 짧은 사각형이 만들어집니다.
배율을 조정하지 않고 사각형을 회전하려면 아래의 코드를 사용합니다.
e.Graphics.ResetTransform()
e.Graphics.RotateTransform(28) ' 28 degrees
e.Graphics.DrawRectangle(pen, rect)
e.Graphics.ResetTransform();
e.Graphics.RotateTransform(28); // 28 degrees
e.Graphics.DrawRectangle(pen, rect);
사각형을 이동하려면 아래의 코드를 사용합니다.
e.Graphics.ResetTransform()
e.Graphics.TranslateTransform(150, 150)
e.Graphics.DrawRectangle(pen, rect)
e.Graphics.ResetTransform();
e.Graphics.TranslateTransform(150, 150);
e.Graphics.DrawRectangle(pen, rect);