有一组精确到小数的坐标值
如何根据坐标值画出直线或曲线?》用canvas的lineto方法只能用整数,用api的话,uses里要加什么?最好给个程序,谢谢

解决方案 »

  1.   

    小数?
    用trunc四舍五入行不?
      

  2.   

    看看下面的代码,略改一下就可以用了。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;