用TCHART: procedure TForm1.BitBtn1Click(Sender: TObject); var i:integer; x,y,anl:double;begin for i:= 0 to 180 do begin anl:=i*3.1415926/180; x:=10*cos(anl); y:=10*sin(anl); series1.AddXY(x,y,'',clred); end; for i:= 180 to 360 do begin anl:=i*3.1415926/180; x:=10*cos(anl); y:=10*sin(anl); series2.AddXY(x,y,'',clred); end;end;
也可以这样画: a为幅度,t为周期,ox,oy为原点,pa,pt为要描点的相对坐标, pnum表示取多少点.都以象素数为单位. procedure TForm1.Button1Click(Sender: TObject); var a,t,ox,oy,pa,pt,i,pnum:integer; begin a:=40;t:=100; ox:=200;oy:=200; pnum:=40; for i:=0 to pnum do begin pa:=round(a*sin(2*pi*i/pnum)); pt:=round(t*i/pnum); canvas.Pixels[ox-pt,oy+pa]:=clred; end; end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i:integer;
x,y,anl:double;begin
for i:= 0 to 180 do
begin
anl:=i*3.1415926/180;
x:=10*cos(anl);
y:=10*sin(anl);
series1.AddXY(x,y,'',clred);
end; for i:= 180 to 360 do
begin
anl:=i*3.1415926/180;
x:=10*cos(anl);
y:=10*sin(anl);
series2.AddXY(x,y,'',clred);
end;end;
a为幅度,t为周期,ox,oy为原点,pa,pt为要描点的相对坐标,
pnum表示取多少点.都以象素数为单位.
procedure TForm1.Button1Click(Sender: TObject);
var a,t,ox,oy,pa,pt,i,pnum:integer;
begin
a:=40;t:=100;
ox:=200;oy:=200;
pnum:=40;
for i:=0 to pnum do
begin
pa:=round(a*sin(2*pi*i/pnum));
pt:=round(t*i/pnum);
canvas.Pixels[ox-pt,oy+pa]:=clred;
end;
end;
采用timer组件控制画线的过程不就行了.
lineto(x2,y2);x1,y1 和x2,y2为输入坐标。下一次输入时设x3,y3 和前两个进行比较……重画……
其实都是废话,就看你怎么写sql了。