部分代码如下:
//绘制正弦曲线
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  //存储曲线绘制的当前点
  x1:real;
  x2:real;
  y1:real;
  y2:real;
  n:real;
begin
  x1:=0;
  y1:=(form1.Image1.Left+form1.Image1.Width)/4+10;   
  x2:=x1;
  y2:=y1;
  form1.Image1.Canvas.MoveTo(trunc(x2),trunc(y2));
  //定义曲线的起始点
  n:=0;
  while n<pi*12 do //这里限定绘制的正弦曲线周期数  
    begin
      x2:=x2+pi/12;
      y2:=y1-40*sin(n);
      //绘制正弦曲线
      form1.image1.Canvas.LineTo(trunc(x2),trunc(y2));
      n:=n+pi/180;
    end;
end;
这两个地方不明白:
1. y1:=(form1.Image1.Left+form1.Image1.Width)/4+10; 
这里是什么意思呢,为什么"/4+10"呢,而且我发现为什么y1的值越大,正弦曲线反而越往下呢?
2.      x2:=x2+pi/12;
      y2:=y1-40*sin(n);这两句搞不懂麻烦各位高手解惑,谢谢

解决方案 »

  1.   


    1.确定曲线绘制的X,Y坐标,看代码里写的 貌似有点问题 ,
    如果是要把曲线绘制到image1中间,可以让 y1 := Image1.Height /2;2. x2 + pi/12 后面的 pi/12只是一个增量,把绘制的曲线拉宽
    y2:=y1-40*sin(n);中的 40*sin(n)也是扩大绘制的曲线都是为了扩大绘制的图形而已
      

  2.   

    非常感谢!!终于明白了,我刚学delphi呵呵,感觉开始入门了