GraphicsPath::AddCurve(constPointF*,INT,INT,INT,REAL) 메서드(gdipluspath.h)
GraphicsPath::AddCurve 메서드는 이 경로의 현재 그림에 카디널 스플라인을 추가합니다.
구문
Status AddCurve(
[in] const PointF *points,
[in] INT count,
[in] INT offset,
[in] INT numberOfSegments,
[in] REAL tension
);
매개 변수
[in] points
형식: const PointF*
카디널 스플라인을 정의하는 점 배열에 대한 포인터입니다. 카디널 스플라인은 배열에 있는 점의 하위 집합( offset 및 numberOfSegments 매개 변수로 지정됨)을 통과하는 곡선입니다.
[in] count
형식: INT
점 배열의 요소 수를 지정하는 정수입니다.
[in] offset
형식: INT
카디널 스플라인의 첫 번째 지점으로 사용되는 배열 요소의 인덱스를 지정하는 정수입니다.
[in] numberOfSegments
형식: INT
카디널 스플라인의 세그먼트 수를 지정하는 정수입니다. 세그먼트는 배열의 연속 지점을 연결하는 곡선입니다.
[in] tension
형식: REAL
곡선의 길이와 곡선이 구부러지는 방식을 제어하는 무수 실수입니다. 값 0은 스플라인이 직선 세그먼트 시퀀스임을 지정합니다. 값이 증가하면 곡선이 더 충만해집니다.
반환 값
형식: 상태
메서드가 성공하면 Status 열거형의 요소인 Ok를 반환합니다.
메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.
설명
나중에 해당 점이 필요한 경우 점 배열의 복사본을 유지해야 합니다. GraphicsPath 개체는 AddClosedCurve 메서드에 전달된 점을 저장하지 않습니다. 대신, 카디널 스플라인을 Bézier 스플라인 시퀀스로 변환하고 해당 Bézier 스플라인을 정의하는 점을 저장합니다. GraphicsPath 개체에서 원래 점 배열을 검색할 수 없습니다.
예제
다음 예제에서는 GraphicsPath 개체 경로를 만들고 경로에 카디널 스플라인을 추가한 다음 경로를 그립니다. 스플라인은 8개의 점 배열에서 2에서 6까지 인덱싱된 포인트에서 빌드됩니다.
VOID AddCurveExample3(HDC hdc)
{
Graphics graphics(hdc);
GraphicsPath path;
PointF pts[] = {PointF(50.0f, 50.0f),
PointF(70.0f, 80.0f),
PointF(100.0f, 100.0f),
PointF(130.0f, 40.0f),
PointF(150.0f, 90.0f),
PointF(180.0f, 30.0f),
PointF(210.0f, 120.0f),
PointF(240.0f, 80.0f)};
path.AddCurve(
pts,
8, // There are eight points in the array.
2, // Start at the point with index 2.
4, // Four segments. End at the point with index 6.
1.0f);
Pen pen(Color(255, 0, 0, 255));
graphics.DrawPath(&pen, &path);
// Draw all eight points in the array.
SolidBrush brush(Color(255, 255, 0, 0));
for(INT j = 0; j <= 7; ++j)
graphics.FillEllipse(&brush, pts[j].X - 3.0f, pts[j].Y - 3.0f, 6.0f, 6.0f);
}
Color(255, 255, 0, 0)
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP, Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | gdipluspath.h(Gdiplus.h 포함) |
라이브러리 | Gdiplus.lib |
DLL | Gdiplus.dll |