//画T时刻的波形
Image1.Canvas.Pen.Color := clBlack ;
Image1.Canvas.Brush.Color := clBlue ;
for x := 0 to 350 do begin
y := Round(H* sin(x/L*2*Pi-T));
if x= 0 then begin
Image1.Canvas.PenPos := Point(10+x,125+y);
if cbKeyNode.Checked then
Image1.Canvas.Ellipse(10+x-3,125+Y-3,10+x+3,125+Y+3);
end else Image1.Canvas.LineTo(10+x,125+y) ;
end;
end; //画横波波形
//纵波
Vertical : begin
//画T时刻的波形
Image1.Canvas.Pen.Color := clBlack ;
Image1.Canvas.Brush.Color := clRed ;
for i := 1 to 16 do begin
X := Dot[i].X + Round(H*Sin( Dot[i].X/L*2*Pi-T )/5);
if cbKeyNode.Checked and (i=8) then
Image1.Canvas.Ellipse(X-6,Dot[i].Y-6,X+6,Dot[i].Y+6);
if i = 1 then
Image1.Canvas.PenPos := Point(X,Dot[i].Y)
else
Image1.Canvas.LineTo(X,Dot[i].Y);
end;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
begin
T := 0;
trbFrameRate.Position := 25;
trbWaveHeight.Position := 60;
trbWaveLength.Position := 100;
trbSpeed.Position := 5;
for i:= 1 to 16 do begin
Dot[i].X := 10+i*20;
if ODD(i) then Dot[i].Y := 50
else Dot[i].Y := 200;
end;
Mode := Horizontal;
end;
procedure TForm1.btnStartClick(Sender: TObject);
begin
Timer1.Enabled := True ;
end;
procedure TForm1.btnPauseClick(Sender: TObject);
begin
Timer1.Enabled := False;
end;