Share via


Graphics::D rawBeziers(constPen*,constPointF*,INT) 메서드(gdiplusgraphics.h)

Graphics::D rawBeziers 메서드는 연결된 Bézier 스플라인 시퀀스를 그립니다.

구문

Status DrawBeziers(
  const Pen    *pen,
  const PointF *points,
  INT          count
);

매개 변수

pen

베지어 스플라인을 그리는 데 사용되는 펜에 대한 포인터입니다.

points

Bézier 스플라인의 시작, 끝 및 제어 지점을 지정하는 PointF 개체의 배열에 대한 포인터입니다.

count

배열의 요소 수를 지정하는 정수입니다.

반환 값

메서드가 성공하면 Status 열거형의 요소인 Ok를 반환합니다.

메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.

설명

Bézier 스플라인은 제어점을 통과하지 않습니다. 제어점은 자석 역할을 하며, 특정 방향으로 곡선을 당겨 베지어 스플라인이 구부러지는 방식에 영향을 줍니다. 각 베지어 스플라인에는 시작점과 끝점이 필요합니다. 각 끝점은 다음 베지어 스플라인의 시작점입니다.

예제

다음 예제에서는 한 쌍의 베지어 곡선을 그립니다.

VOID Example_DrawBeziers2(HDC hdc)
{
   Graphics graphics(hdc);

   // Define a Pen object and an array of PointF objects.
   Pen greenPen(Color(255, 0, 255, 0), 3);

   PointF startPoint(100.0f, 100.0f);
   PointF ctrlPoint1(200.0f, 50.0f);
   PointF ctrlPoint2(400.0f, 10.0f);
   PointF endPoint1(500.0f, 100.0f);
   PointF ctrlPoint3(600.0f, 200.0f);
   PointF ctrlPoint4(700.0f, 400.0f);
   PointF endPoint2(500.0f, 500.0f);

   PointF curvePoints[7] = {
      startPoint,
      ctrlPoint1,
      ctrlPoint2,
      endPoint1,
      ctrlPoint3,
      ctrlPoint4,
      endPoint2};

   // Draw the Bezier curves.
   graphics.DrawBeziers(&greenPen, curvePoints, 7);

   // Draw the control and end points.
   SolidBrush redBrush(Color(255, 255, 0, 0));
   graphics.FillEllipse(&redBrush, Rect(100 - 5, 100 - 5, 10, 10));
   graphics.FillEllipse(&redBrush, Rect(500 - 5, 100 - 5, 10, 10));
   graphics.FillEllipse(&redBrush, Rect(500 - 5, 500 - 5, 10, 10));
   SolidBrush blueBrush(Color(255, 0, 0, 255));
   graphics.FillEllipse(&blueBrush, Rect(200 - 5, 50 - 5, 10, 10));
   graphics.FillEllipse(&blueBrush, Rect(400 - 5, 10 - 5, 10, 10));
   graphics.FillEllipse(&blueBrush, Rect(600 - 5, 200 - 5, 10, 10));
   graphics.FillEllipse(&blueBrush, Rect(700 - 5, 400 - 5, 10, 10));
}

요구 사항

요구 사항
헤더 gdiplusgraphics.h

추가 정보

베지어 스플라인

DrawBezier 메서드

베지어 스플라인 그리기

DrawBeziers

그래픽

Pointf