在Tee chart lite XE5中的线条

时间:2014-06-19 16:35:02

标签: line teechart series

我试图在Delphi XE5中用teechart lite创建这种类型的图形:

所以我有点(x1,y1),(x2,y2),....,(xk,yk)。

点(x1,y1),(x2,y2)形成线条编号。 1.

第二个线条是(x3,y3),(x4,y4),依此类推。注意(x2,y2)不同于(x3,y3)它们不是同一点。

使用tee chart lite可以在XE5中创建这样的图形吗?

1 个答案:

答案 0 :(得分:2)

使用TeeChart可以有不同的选项。

  • 一个系列和零点。您可以在每个细分后添加一个空点,以便系列中的行不会连接。即:

    uses Series;
    
    procedure TForm1.FormCreate(Sender: TObject);
    
      procedure AddSegment(Series: TChartSeries; X0, Y0, X1, Y1: Double);
      begin
        Series.AddXY(X0, Y0);
        Series.AddXY(X1, Y1);
        Series.AddNullXY(X1, Y1);
      end;
    
    var fastLine1: TFastLineSeries;
    begin
      Chart1.View3D:=false;
    
      fastLine1:=Chart1.AddSeries(TFastLineSeries) as TFastLineSeries;
      fastLine1.TreatNulls:=tnDontPaint;
    
      AddSegment(fastLine1, 0, 1, 1, 2);
      AddSegment(fastLine1, 2, 1, 3, 0);
      AddSegment(fastLine1, 4, 2, 5, 3);
    end;
    
  • 多个系列。。您可以为每个细分具有一系列。即:

    uses Series;
    
    procedure TForm1.FormCreate(Sender: TObject);
    
      procedure AddSegment(Chart: TChart; X0, Y0, X1, Y1: Double);
      begin
        with Chart.AddSeries(TFastLineSeries) do
        begin
          AddXY(X0, Y0);
          AddXY(X1, Y1);
    
          Color:=Chart[0].Color;
        end;
      end;
    
    begin
      Chart1.View3D:=false;
    
      AddSegment(Chart1, 0, 1, 1, 2);
      AddSegment(Chart1, 2, 1, 3, 0);
      AddSegment(Chart1, 4, 2, 5, 3);
    end;
    
  • DrawLineTool。此工具允许您直接使用鼠标绘制线段,或按代码添加。即:

    uses Series, TeeTools;
    
    procedure TForm1.FormCreate(Sender: TObject);
    
      procedure AddSegment(tool: TDrawLineTool; X0, Y0, X1, Y1: Double);
      begin
        tool.Lines.AddLine(X0, Y0, X1, Y1);
      end;
    
    var drawLineTool1: TDrawLineTool;
    begin
      Chart1.View3D:=false;
    
      Chart1.Axes.Bottom.SetMinMax(0, 5);
      Chart1.Axes.Left.SetMinMax(0, 3);
      Chart1.AddSeries(TFastLineSeries);
    
      drawLineTool1:=Chart1.Tools.Add(TDrawLineTool) as TDrawLineTool;
      AddSegment(drawLineTool1, 0, 1, 1, 2);
      AddSegment(drawLineTool1, 2, 1, 3, 0);
      AddSegment(drawLineTool1, 4, 2, 5, 3);
    end;