Delphi 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);

実行結果

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

uses TeeSpline;

var
  BSpline: TBSpline;
  I: Integer;
begin
  BSpline:=TBSpline.Create;
  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 I := 0 to BSpline.Fragments do
  begin
    with BSpline.Value(I / BSpline.Fragments) do
      Series1.AddXY(X, Y);
  end;
  BSpline.Free;
end;

実行結果

コメント

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

コメントを残す

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

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