GDI+의 펜, 선 및 사각형

GDI+를 사용하여 선을 그리려면 Graphics 개체 및 Pen 개체를 생성해야 합니다. Graphics 개체는 실제로 그리기를 하는 메서드를 제공하고, Pen 개체는 선 색상, 너비 및 스타일과 같은 특성을 저장합니다.

선 그리기

선을 그리려면 Graphics 개체의 DrawLine 메서드를 호출합니다. Pen 개체는 DrawLine 메서드로 인수 중 하나로 전달됩니다. 다음 예제에서는 점 (4, 2)에서 점 (12, 6)까지 선을 그립니다.

myGraphics.DrawLine(myPen, 4, 2, 12, 6);
myGraphics.DrawLine(myPen, 4, 2, 12, 6)

DrawLineGraphics 클래스의 오버로드된 메서드로, 인수와 함께 이를 공급할 수 있는 몇 가지 방법이 있습니다. 예를 들어, 두 개의 Point 개체를 생성하고 Point 개체를 DrawLine 메서드에 인수로 전달할 수 있습니다.

Point myStartPoint = new Point(4, 2);
Point myEndPoint = new Point(12, 6);
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint);
Dim myStartPoint As New Point(4, 2)
Dim myEndPoint As New Point(12, 6)
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint)

펜 생성

Pen 개체를 생성할 때 특정 특성을 지정할 수 있습니다. 예를 들어, 한 Pen 생성자를 통해 색과 너비를 지정할 수 있습니다. 다음 예제에서는 (0, 0)에서 (60, 30)까지 너비 2의 파란색 선을 그립니다.

Pen myPen = new Pen(Color.Blue, 2);
myGraphics.DrawLine(myPen, 0, 0, 60, 30);
Dim myPen As New Pen(Color.Blue, 2)
myGraphics.DrawLine(myPen, 0, 0, 60, 30)

파선 및 선 끝 모양

또한 Pen 개체는 선의 기능을 지정하는 데 사용할 수 있는 DashStyle과 같은 속성을 노출시킵니다. 다음 예제에서는 (100, 50)에서 (300, 80)까지 파선을 그립니다.

myPen.DashStyle = DashStyle.Dash;
myGraphics.DrawLine(myPen, 100, 50, 300, 80);
myPen.DashStyle = DashStyle.Dash
myGraphics.DrawLine(myPen, 100, 50, 300, 80)

Pen 개체의 속성을 사용하여 선의 특성을 더 많이 설정할 수 있습니다. StartCapEndCap 속성은 선의 끝 모양을 지정하는데, 끝은 평면, 정사각형, 둥근형, 삼각형 또는 사용자 지정 모양일 수 있습니다. LineJoin 속성을 통해 연결된 선이 연귀 이음되는지(예리한 코너와 결합됨), 경사형, 둥근형 또는 클립형인지를 지정할 수 있습니다. 다음 그림에서는 다양한 끝 모양과 조인 스타일의 선을 보여줍니다.

선

사각형 그리기

GDI+를 사용하여 사각형을 그리는 것은 선 그리기와 유사합니다. 사각형을 그리려면 Graphics 개체와 Pen 개체가 필요합니다. Graphics 개체는 DrawRectangle 메서드를 제공하고, Pen 개체는 선 두께 및 색과 같은 특성을 저장합니다. Pen 개체는 DrawRectangle 메서드로 인수 중 하나로 전달됩니다. 다음 예제에서는 왼쪽 위 모서리가 (100, 50)에 있고, 너비 80, 높이 40의 사각형을 그립니다.

myGraphics.DrawRectangle(myPen, 100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, 100, 50, 80, 40)

DrawRectangleGraphics 클래스의 오버로드된 메서드로, 인수와 함께 이를 공급할 수 있는 몇 가지 방법이 있습니다. 예를 들어, Rectangle 개체를 생성하고 Rectangle 개체를 DrawRectangle 메서드에 인수로 전달할 수 있습니다.

Rectangle myRectangle = new Rectangle(100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, myRectangle);
Dim myRectangle As New Rectangle(100, 50, 80, 40)
myGraphics.DrawRectangle(myPen, myRectangle)

Rectangle 개체는 사각형에 대한 정보를 조작하고 수집하기 위한 메서드 및 속성을 가집니다. 예를 들어, InflateOffset 메서드는 사각형의 크기와 위치를 변경합니다. IntersectsWith 메서드는 사각형이 지정된 다른 사각형과 교차하는지 여부를 알려주며, Contains 메서드는 지정된 점이 사각형 내에 있는지 여부를 알려줍니다.

참고 항목