W
wwei656
Unregistered / Unconfirmed
GUEST, unregistred user!
各位FW:兄弟写了个简单的正玄函数图像,原有的功能可以画出三条函数曲线.现想进一步实现新的功能即可以实现随着列表框(ComboBox)数值的变化如:11、12、13、14、15,正玄曲线也发相应的变化.FW们帮我看看代码应该做些什么调整?!使用ComboBox控件,
源代码如下:
procedure TForm1.FormCreate(Sender: TObject);//用于实现ComboBox的赋值.
var
i,n,y,r:integer; //n,y,r代表年月日 i用于循环
begin
n:=1970;
y:=12;
r:=31;
for i:=n to 2008 do
begin
combobox1.Items.Add(inttostr(i));
end;
for i:=1 to y do
begin
combobox2.Items.Add(inttostr(i));
end;
for i:=1 to r do
begin
combobox3.Items.Add(inttostr(i));
end;
end;
procedure TForm1.ComboBox3Change(Sender: TObject);//画正玄曲线,但曲线不随值的变化 而发生相应的变化...
var a,t,ox,oy,pa,pt,i,pnum:integer;
begin
a:=40;t:=100;
ox:=200;oy:=100;
pnum:=1000;
for i:=0 to pnum do
begin
//pa:=round(a*sin(2*pi*i/pnum));
Canvas.Pixels[i,Round(sin(0.273181*(i MOD 23))*20)+181]:=clred;
Canvas.Pixels[i,Round(sin(0.224399*(i MOD 28))*20)+181]:=clred;
Canvas.Pixels[i,Round(sin(0.190399*(i MOD 33))*20)+181]:=clblack;
pt:=round(t*i/pnum);
canvas.Pixels[ox-pt,oy+pa]:=clred;
end;
// a为幅度,t为周期,ox,oy为原点,pa,pt为要描点的相对坐标,
//pnum表示取多少点.都以象素数为单位.
end;
源代码如下:
procedure TForm1.FormCreate(Sender: TObject);//用于实现ComboBox的赋值.
var
i,n,y,r:integer; //n,y,r代表年月日 i用于循环
begin
n:=1970;
y:=12;
r:=31;
for i:=n to 2008 do
begin
combobox1.Items.Add(inttostr(i));
end;
for i:=1 to y do
begin
combobox2.Items.Add(inttostr(i));
end;
for i:=1 to r do
begin
combobox3.Items.Add(inttostr(i));
end;
end;
procedure TForm1.ComboBox3Change(Sender: TObject);//画正玄曲线,但曲线不随值的变化 而发生相应的变化...
var a,t,ox,oy,pa,pt,i,pnum:integer;
begin
a:=40;t:=100;
ox:=200;oy:=100;
pnum:=1000;
for i:=0 to pnum do
begin
//pa:=round(a*sin(2*pi*i/pnum));
Canvas.Pixels[i,Round(sin(0.273181*(i MOD 23))*20)+181]:=clred;
Canvas.Pixels[i,Round(sin(0.224399*(i MOD 28))*20)+181]:=clred;
Canvas.Pixels[i,Round(sin(0.190399*(i MOD 33))*20)+181]:=clblack;
pt:=round(t*i/pnum);
canvas.Pixels[ox-pt,oy+pa]:=clred;
end;
// a为幅度,t为周期,ox,oy为原点,pa,pt为要描点的相对坐标,
//pnum表示取多少点.都以象素数为单位.
end;