在delphi中怎么画一个正弦曲线,就是只在窗体的画布(canvas)上?

解决方案 »

  1.   

    然后用moveto,lineto画吗?这个参数只支持整形阿?怎么才能把图画的精确?
      

  2.   

    将sin(x)乘上一个倍数就能接近了。

      y := sin(x)*1000;
      

  3.   

    procedure TForm1.FormPaint(Sender: TObject);
    const pi = 3.1415926;
    var    y0:real;
        x,y,i,j:integer;
    begin
        //Canvas.Pen.Color := RGB(150,200,180);
    for i:=20 to 100 do
    begin
         Canvas.Pixels[100,5*i-80] := clBlue;
         Canvas.Pixels[5*i,200] := clBlue;
    end;
    for j:=0 to 360 do
    begin
         y0 := 50*sin(2*pi*j/360);
         y := 200-round(y0);
         x := 100+j;
          Canvas.Pixels[x,y] := clRed;
            if(x mod 3) <> 0 then
            begin
             Canvas.MoveTo(x,200);
             Canvas.LineTo(x,y);
    end;
            y := 200+round(y0);
            Canvas.Pixels[x,y] := clRed;
    end;
    end;