关于chart做两个series的问题...实在没分了...(27分)

  • 主题发起人 主题发起人 touhenteng
  • 开始时间 开始时间
T

touhenteng

Unregistered / Unconfirmed
GUEST, unregistred user!
请问一下,可以作两个series,一个可以坐标轴动态移动,另外一个固定不动,这样可以吗?
我试了好像不行
高手支招..
哎,或者用两个图也可以,可是试了好像灰挡住的
谢谢...
 
//不太明白,不知这是不是你想要的
//使用teechart7.06

unit mysin1_Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

type
TForm1 = class(TForm)
Chart1: TChart;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
t0:Real;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
i:Integer;
begin
t0:=0;
Timer1.Interval:=100;
Chart1.View3D:=False;
Chart1.Legend.Visible:=False;
chart1.LeftAxis.SetMinMax(-100,100);
Chart1.BottomAxis.SetMinMax(0,360);
Chart1.SeriesList.Clear;
Chart1.AddSeries(TLineSeries.Create(Self));
Chart1.AddSeries(TLineSeries.Create(Self));
(Chart1.Series[0] as TLineSeries).LinePen.Width:=2;
(Chart1.Series[0] as TLineSeries).Color:=clBlue;
(Chart1.Series[1] as TLineSeries).LinePen.Width:=2;
(Chart1.Series[1] as TLineSeries).Color:=clred;
for i:=0 to 360 do
begin
(Chart1.Series[0] as TLineSeries).Add(100*sin(i*pi/90));
(Chart1.Series[1] as TLineSeries).Add(100*cos(i*pi/90));
end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
i:integer;
begin
t0:=t0+1/64;
(Chart1.Series[0] as TLineSeries).Clear;
for i:=0 to 360 do
(Chart1.Series[0] as TLineSeries).Add(100*sin(i*pi/90+t0));
end;

end.
 
就是一个chart图里面添加两个series..
然后两个series呢,一个动态移动,从右向左,另外一个呢,固定不动....就是作为背景一样...teechart7.06我装都装不好啊
 
如果你使用chart实现不了你这样的功能吧,chart中多条series使用相同的坐标轴,没法实现一个移动一个静止。如果你的一条曲线是固定的,还有一个方法,既是作为背景,你可以先绘制好这条曲线,做成图片,然后做成背景。
 
可以重新给新的series赋值啊,
 

Similar threads

D
回复
0
查看
849
DelphiTeacher的专栏
D
D
回复
0
查看
693
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部