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 列挙体の他の要素のいずれかを返します。

注釈

これらのポイントが後で必要になる場合は、 points 配列のコピーを保持する必要があります。 GraphicsPath オブジェクトには、AddClosedCurve メソッドに渡されたポイントは格納されません。代わりに、カーディナル スプラインをベジエ スプラインのシーケンスに変換し、それらのベジエ スプラインを定義する点を格納します。 GraphicsPath オブジェクトからポイントの元の配列を取得することはできません。

次の例では、 GraphicsPath オブジェクト パスを作成し、パスにカーディナル スプラインを追加してから、 パスを描画 します。 スプラインは、インデックス 2 ~ 6 のポイントから 8 ポイントの配列で構築されます。

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 を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

こちらもご覧ください

AddBezier メソッド

AddBeziers メソッド

AddClosedCurve メソッド

AddCurve メソッド

カーディナル スプライン

領域を使用したクリッピング

パスの作成および描画

パス グラデーションの作成

カーディナル スプラインの描画

Graphicspath

パス

Pointf