看看下面的代码,略改一下就可以用了。procedure TForm1.BitBtn1Click(Sender: TObject); var posY:Array[0..100] of integer; i:Integer; yPer:real; yMin,yMax:integer; begin Randomize; for i:=0 to 99 do begin posY[i]:=random(10000); end; /////////随机生成100个数据,你把你的数组放到这里处理。 yMin:=posY[0]; yMax:=posY[0]; for i:=0 to 99 do begin yMin:=min(yMin,posY[i]); yMax:=max(yMax,posY[i]); end; ///////////求高度 yPer:=Image1.Height/(yMax-yMin); ///////高度和像素转换 Image1.Canvas.MoveTo(0,0); for i:=0 to 99 do begin Image1.Canvas.Pen.Color:=clRed; Image1.Canvas.LineTo(round(i*(Image1.Width/100)),Round(posY[i]*yPer)); end; end;
用trunc四舍五入行不?
var
posY:Array[0..100] of integer;
i:Integer;
yPer:real;
yMin,yMax:integer;
begin
Randomize;
for i:=0 to 99 do
begin
posY[i]:=random(10000);
end;
/////////随机生成100个数据,你把你的数组放到这里处理。 yMin:=posY[0];
yMax:=posY[0];
for i:=0 to 99 do
begin
yMin:=min(yMin,posY[i]);
yMax:=max(yMax,posY[i]);
end;
///////////求高度
yPer:=Image1.Height/(yMax-yMin);
///////高度和像素转换
Image1.Canvas.MoveTo(0,0);
for i:=0 to 99 do
begin
Image1.Canvas.Pen.Color:=clRed;
Image1.Canvas.LineTo(round(i*(Image1.Width/100)),Round(posY[i]*yPer));
end;
end;