如何使用图表中的给定坐标绘制多个矩形

时间:2016-10-25 10:16:58

标签: delphi delphi-7 teechart

我有一个存储在文件中的X / Y坐标:

1A  0,2770  0,2570
1B  0,2870  0,2730
1C  0,2950  0,2680
1D  0,2850  0,2520
2A  0,2870  0,2730
2B  0,2970  0,2890
2C  0,3050  0,2840
2D  0,2950  0,2680
...

读出坐标并存储在数组中:

type
  TXYPoint = record
    name: string;
    X: double;
    Y: double;
  end;

var
    XYPointList: array of TXYPoint;

我尝试在这些坐标中使用Delphi 7在TeeChart Standard 4.04中显示矩形, 为了能够判断测量点是否在这个范围内。

如何使用图表中的给定坐标绘制多个矩形? 来自的帮助: How To Draw Polygon/Rectangle In TChart不起作用或我做错了。

提前致谢。

同时我有以下内容:

function GetChartSeries(von, bis : integer): TLineSeries;
var
    i: integer;
begin
    result:= TLineSeries.Create(nil);
  for i:= von to bis do
  begin
    result.AddXY(XYPointList[i].X,XYPointList[i].Y);
  end;
end;

 l:= Length(XYPointList);
  SetLength(s1,l);

  for i:= 0 to l- 2 do
  begin
    s1[i]:= TLineSeries. Create (nil);
    s1[i].ParentChart:= Chart1;
    s1[i].Assign(GetChartSeries(i,i+1));

  end;

但情况并不好...... enter image description here

1 个答案:

答案 0 :(得分:0)

var 
   s1: array of TLineSeries;
begin
  l:= Length(XYPointList);
  SetLength(s1,l);
  z:= 0;
  for i:= 0 to l-2 do
  begin

    s1[i]:= TLineSeries. Create (nil);
    s1[i].ParentChart:= Chart1;
    if z < 3 then
    begin
        s1[i].Assign(GetChartSeries(i,i+1));
      inc(z);
    end else
    begin
      s1[i].Assign(GetChartSeries(i-2,i+1-2));
      z:=0;
    end;

  end;

函数GetChartSeries如上所述。