我试图在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中创建这样的图形吗?
答案 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;