GDI+의 펜, 선 및 사각형
업데이트: 2007년 11월
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);
DrawLine은 Graphics 클래스의 오버로드된 메서드이므로 여러 가지 방법으로 여기에 인수를 제공할 수 있습니다. 예를 들어 Point 개체를 두 개 만든 다음 Point 개체를 DrawLine 메서드에 대한 인수로 전달할 수 있습니다.
Dim myStartPoint As New Point(4, 2)
Dim myEndPoint As New Point(12, 6)
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint)
Point myStartPoint = new Point(4, 2);
Point myEndPoint = new Point(12, 6);
myGraphics.DrawLine(myPen, myStartPoint, myEndPoint);
Pen 개체 만들기
Pen 개체를 만들 때 몇 가지 특성을 지정할 수 있습니다. 예를 들어, Pen 생성자를 사용하여 색과 너비를 지정할 수 있습니다. 다음 예제에서는 (0, 0)과 (60, 30)을 연결하는 너비 2의 파랑 선을 그립니다.
Dim myPen As New Pen(Color.Blue, 2)
myGraphics.DrawLine(myPen, 0, 0, 60, 30)
Pen myPen = 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 개체의 속성을 사용하여 선의 다양한 특성을 설정할 수 있습니다. StartCap 및 EndCap 속성은 선 끝 모양을 지정합니다. 선 끝 모양은 평평하거나, 사각형이거나, 둥글거나, 삼각형일 수 있으며 모양을 사용자 지정할 수도 있습니다. 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);
DrawRectangle은 Graphics 클래스의 오버로드된 메서드이므로 여러 가지 방법으로 여기에 인수를 제공할 수 있습니다. 예를 들어 Rectangle 개체를 만든 다음 Rectangle 개체를 DrawRectangle 메서드에 인수로 전달할 수 있습니다.
Dim myRectangle As New Rectangle(100, 50, 80, 40)
myGraphics.DrawRectangle(myPen, myRectangle)
Rectangle myRectangle = new Rectangle(100, 50, 80, 40);
myGraphics.DrawRectangle(myPen, myRectangle);
Rectangle 개체에는 사각형의 정보를 조작하고 수집할 수 있는 메서드와 속성이 있습니다. 예를 들어 Inflate 및 Offset 메서드는 사각형의 크기와 위치를 변경합니다. IntersectsWith 메서드는 사각형이 다른 사각형과 교차하는지 여부를 나타내고 Contains 메서드는 지정된 점이 사각형 내부에 있는지 여부를 나타냅니다.