求教:如何通过canvas连接一组实型数据? ( 积分: 100 )

  • 主题发起人 主题发起人 xuehua_ljy
  • 开始时间 开始时间
X

xuehua_ljy

Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi中如何通过canvas连接这组实型数据,并画去相应的波形曲线
比如这组数据:
167.655
167.753
167.769
167.786
167.805
167.823
167.841
167.859
167.878
167.898
167.921
167.947
167.976
168.01
168.046
168.085
168.123
168.16
168.194
168.223
168.245
168.262
168.271
168.274
168.27
168.26
168.244
168.223
168.195
168.163
168.126
本来想多给大家点分,无奈就剩这些了
希望大家帮忙
 
在Delphi中如何通过canvas连接这组实型数据,并画去相应的波形曲线
比如这组数据:
167.655
167.753
167.769
167.786
167.805
167.823
167.841
167.859
167.878
167.898
167.921
167.947
167.976
168.01
168.046
168.085
168.123
168.16
168.194
168.223
168.245
168.262
168.271
168.274
168.27
168.26
168.244
168.223
168.195
168.163
168.126
本来想多给大家点分,无奈就剩这些了
希望大家帮忙
 
按比例缩放后转整型
 
能给段程序参考吗?
 
//下面Memo1中存放是就是你的这系列数字
//您可以直接把这串数据赋给RealStrs

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Memo1: TMemo;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormPaint(Sender: TObject);
private
FRealStrs: TStringList;
procedure SetRealStrs(const Value: TStringList);
{ Private declarations }
public
{ Public declarations }
ProPerty RealStrs:TStringList read FRealStrs write SetRealStrs;
procedure DrawLines;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
RealStrs.Assign(Memo1.Lines);
DrawLines;
end;

procedure TForm1.DrawLines;
var
i,YY:integer;
Avalue:Real;
begin
if Assigned(FRealStrs) then
begin
Form1.Canvas.FillRect(Form1.Canvas.ClipRect);
for i:=0 to FRealStrs.Count-1 do
begin
Avalue:=StrToFloat(FRealStrs.Strings)-168;//取小数部分
YY:=trunc(1000*(Avalue));//放大一千倍
if i=0 then
Form1.Canvas.MoveTo(100+i*10,200-YY)
else
Form1.Canvas.LineTo(100+i*10,200-YY);
end;
end;
end;

procedure TForm1.SetRealStrs(const Value: TStringList);
begin
FRealStrs:=Value;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
FRealStrs:=TStringList.Create;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FRealStrs.Free;
end;

procedure TForm1.FormPaint(Sender: TObject);
begin
DrawLines;
end;

end.
 
多人接受答案了。
 
后退
顶部