C++Builder XEのTChartでなめらかな曲線を描く

TChartのSeriesにLineを追加して

ふつうに折れ線グラフを書くと次のようになります。

Series1->Clear();
Series1->AddXY(0, 0);
Series1->AddXY(1, 1);
Series1->AddXY(2, 1);
Series1->AddXY(3, 0);
Series1->AddXY(4, -1);
Series1->AddXY(5, -1);
Series1->AddXY(6, 0);

実行結果

このグラフをなめらかな曲線にします。

TBSpline* BSpline = new TBSpline();
BSpline->AddPoint(0, 0);
BSpline->AddPoint(1, 1);
BSpline->AddPoint(2, 1);
BSpline->AddPoint(3, 0);
BSpline->AddPoint(4, -1);
BSpline->AddPoint(5, -1);
BSpline->AddPoint(6, 0);
BSpline->Interpolated = true;

Series1->Clear();
for (int i = 0; i <= BSpline->Fragments; ++i)
{
  TVertex Vertex = BSpline->Value((double)i / BSpline->Fragments);
  Series1->AddXY(Vertex.X, Vertex.Y);
}

delete BSpline;

実行結果

コメント

  1. Pingback: 山本隆の開発日誌

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください