部分代码如下:
//绘制正弦曲线
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);这两句搞不懂麻烦各位高手解惑,谢谢
//绘制正弦曲线
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.确定曲线绘制的X,Y坐标,看代码里写的 貌似有点问题 ,
如果是要把曲线绘制到image1中间,可以让 y1 := Image1.Height /2;2. x2 + pi/12 后面的 pi/12只是一个增量,把绘制的曲线拉宽
y2:=y1-40*sin(n);中的 40*sin(n)也是扩大绘制的曲线都是为了扩大绘制的图形而已