펜, 선 및 사각형

Windows GDI+로 선을 그리려면 Graphics 개체와 Pen 개체를 만들어야 합니다. Graphics 개체는 실제로 그리기를 수행하는 메서드를 제공하며 Pen 개체는 선의 특성(예: 색, 너비 및 스타일)을 저장합니다. 선을 그리는 것은 단순히 Graphics 개체의 DrawLine 메서드를 호출하는 문제입니다. Pen 개체의 주소는 DrawLine 메서드에 인수 중 하나로 전달됩니다. 다음 예제에서는 점(4, 2)에서 점(12, 6)으로 선을 그립니다.

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

DrawLineGraphics 클래스의 오버로드된 메서드이므로 인수를 사용하여 제공할 수 있는 여러 가지 방법이 있습니다. 예를 들어 두 개의 Point 개체를 생성하고 Point 개체에 대한 참조를 DrawLine 메서드에 대한 인수로 전달할 수 있습니다.

Point myStartPoint(4, 2);
Point myEndPoint(12, 6);
myGraphics.DrawLine(&myPen, myStartPoint, myEndPoint);

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

Pen myPen(Color(255, 0, 0, 255), 2);
myGraphics.DrawLine(&myPen, 0, 0, 60, 30);

개체에는 선의 기능을 지정하는 데 사용할 수 있는 대시 스타일과 같은 특성도 있습니다. 예를 들어 다음 예제에서는 파선(100, 50)에서 (300, 80)로 파선선을 그립니다.

myPen.SetDashStyle(DashStyleDash);
myGraphics.DrawLine(&myPen, 100, 50, 300, 80);

개체의 다양한 메서드를 사용하여 줄의 더 많은 특성을 설정할 수 있습니다. Pen::SetStartCapPen::SetEndCap 메서드는 줄 끝의 모양을 지정합니다. 끝은 평면, 정사각형, 둥근 모양, 삼각형 또는 사용자 지정 셰이프일 수 있습니다. Pen::SetLineJoin 메서드를 사용하면 연결된 선이 완화(예리한 모서리와 조인됨), 기울기, 반올림 또는 잘렸는지 여부를 지정할 수 있습니다. 다음 그림에서는 다양한 끝 모양과 조인 스타일의 선을 보여줍니다.

둥근 모서리와 원형 끝, 둥근 모서리와 두 개의 화살표 스타일을 보여 주는 두 줄 그림

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

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

DrawRectangleGraphics 클래스의 오버로드된 메서드이므로 여러 가지 방법으로 인수를 제공할 수 있습니다. 예를 들어 Rect 개체를 생성하고 Rect 개체에 대한 참조를 DrawRectangle 메서드에 대한 인수로 전달할 수 있습니다.

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

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