请解释delphi的一段代码,关于画布canvas的,知道的来看下...(100分)!

这是关于画布的程序,画的是二次函数的(y=x*x-2x+1)请给下面这段程序写上注释,最好能解释每一句话,如果解释的好我会加分的,解释的越多我加分越多,,上限是300分我... 这是关于画布的程序,画的是二次函数的(y=x*x-2x+1)请给下面这段程序写上注释,最好能解释每一句话,如果解释的好我会加分的,解释的越多我加分越多,,上限是300分我将会选出两个优秀的答案,知道的告诉我把,,谢谢啦!!!程序代码:procedure TForm1.Button1Click(Sender: TObject);vari,x,y:integer;a:array[1..200] of TPoint;beginx:=ClientWidth div 2;y:=ClientHeight div 2;canvas.Pen.Color := clBlue;MoveWindowOrg( canvas.Handle, x, y );canvas.MoveTo(-ClientWidth div 2, 0);canvas.LineTo(ClientWidth div 2, 0);canvas.MoveTo(0, ClientHeight div 2);canvas.LineTo(0, -Clientheight div 2);x:=-100;canvas.Pen.Color := clRed;for i:=1 to 200 dobegina[i].X := 5*x;a[i].Y := -(x*x-2x+1);inc(x);end;canvas.Polyline(a);end; 展开
 我来答
liu55721
2011-08-20 · TA获得超过922个赞
知道大有可为答主
回答量:1861
采纳率:100%
帮助的人:876万
展开全部
procedure TForm1.Button1Click(Sender: TObject);
var //变量定义开始
i,x,y:integer; //定义了三个整数变量
a:array[1..200] of TPoint; //定义一个以点类型为基类型的数组类型变量
begin //TPoint(点,直角坐标系上的任意一点,两个值,X和Y值)类型,它有两个最基本的变量,即X和Y,请注意这里的X,Y与上而的X,y变量无关;
x:=ClientWidth div 2; //客户区宽度整除2,
y:=ClientHeight div 2; //客户区高度整除2,
canvas.Pen.Color := clBlue; //画布.笔.颜色,设置画布上画线的笔的颜色为蓝色;
MoveWindowOrg(canvas.Handle, x, y );
canvas.MoveTo(-ClientWidth div 2, 0); //移动画笔到划线的起始点,
canvas.LineTo(ClientWidth div 2, 0); //在划布上从(-ClientWidth div 2, 0)划一条水平直线到(ClientWidth div 2, 0),
canvas.MoveTo(0, ClientHeight div 2); //移动画笔到划线的起始点,
canvas.LineTo(0, -Clientheight div 2); //在划布上从(0, ClientHeight div 2))划一条垂直线到(0, -Clientheight div 2),
x:=-100; //给变量X重新赋值,准备画抛物线
canvas.Pen.Color := clRed; //设置画布上画线的笔的颜色为红色;
for i:=1 to 200 do //给数组变量a的各个(200个)元素赋值,每个有x,y两个值
begin //开始为抛物线上的每一点位置确定值
a[i].X := 5*x; //关于抛物线上每一点的值你可以查一下高中数学中的定义
a[i].Y:=-(x*x-2*(x+1));
inc(x); // 使X每循环一次就加1,实际上这一句,等于X:=X+1;
end;
canvas.Polyline(a);//根据a变量的值画出一条抛物线 Polyline(a)是画布的画抛物线函数.
end;
以上解释不知可否,莫笑.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式