📄 rei_29.pas
字号:
unit Rei_29;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Menus, StdCtrls;
type
TRei40_29 = class(TForm)
Timer1: TTimer;
MainMenu1: TMainMenu;
Image1: TImage;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
ScrollBar1: TScrollBar;
ScrollBar2: TScrollBar;
ScrollBar3: TScrollBar;
ScrollBar4: TScrollBar;
procedure FormCreate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ScrollBar1Change(Sender: TObject);
procedure ScrollBar2Change(Sender: TObject);
procedure ScrollBar3Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure ScrollBar4Change(Sender: TObject);
private
{ Private 定义 }
public
{ Public 定义 }
end;
var
Rei40_29: TRei40_29;
// 定义各种变量类型(Byte、Word、Integer、Extended、Tcolor、TRect)
St: Byte;
WX, WY: Word;
X, Y, DX, DY, DD, CY: Integer;
XTR, YTR, QTR, DR: Extended;
Col: TColor;
Rect_D: TRect;
implementation
{$R *.DFM}
procedure TRei40_29.FormCreate(Sender: TObject);
begin
// 设定Form属性
Rei40_29.Height := 480;
Rei40_29.Width := 640;
Image1.Width := Rei40_29.ClientHeight;
Panel1.Width := 152;
Label1.Height := 23;
Label1.Left := 10;
Label1.Top := 12;
Label1.Width := 63;
Label2.Height := 23;
Label2.Left := 10;
Label2.Top := 82;
Label2.Width := 63;
Label3.Height := 23;
Label3.Left := 10;
Label3.Top := 152;
Label3.Width := 63;
Label4.Height := 23;
Label4.Left := 10;
Label4.Top := 222;
Label4.Width := 63;
Edit1.Height := 23;
Edit1.Left := 82;
Edit1.Top := 10;
Edit1.Width := 60;
Edit2.Height := 23;
Edit2.Left := 82;
Edit2.Top := 80;
Edit2.Width := 60;
Edit3.Height := 23;
Edit3.Left := 82;
Edit3.Top := 150;
Edit3.Width := 60;
Edit4.Height := 23;
Edit4.Left := 82;
Edit4.Top := 220;
Edit4.Width := 60;
ScrollBar1.Height := 16;
ScrollBar1.Left := 10;
ScrollBar1.Top := 45;
ScrollBar1.Width := 135;
ScrollBar2.Height := 16;
ScrollBar2.Left := 10;
ScrollBar2.Top := 115;
ScrollBar2.Width := 135;
ScrollBar3.Height := 16;
ScrollBar3.Left := 10;
ScrollBar3.Top := 185;
ScrollBar3.Width := 135;
ScrollBar4.Height := 16;
ScrollBar4.Left := 10;
ScrollBar4.Top := 255;
ScrollBar4.Width := 135;
Button1.Height := 43;
Button1.Left := 10;
Button1.Top := 292;
Button1.Width := 135;
// 变量的初始设定
St := 0;
DD := 4;
WX := 140;
WY := 60;
CY := 1;
DR := Pi * DD / 180;
ScrollBar1.Position := DD;
ScrollBar2.Position := WX;
ScrollBar3.Position := WY;
ScrollBar4.Position := CY;
end;
procedure TRei40_29.Timer1Timer(Sender: TObject);
begin
case St of
// 若St=0则将画面与变量初始化
0: begin
Rect_D := Rect(0, 0, Image1.Width, Image1.Height);
Image1.Canvas.Brush.Color := clBlack;
Image1.Canvas.FillRect(Rect_D);
Edit1.Text := ' ' + IntToStr(DD);// + '亱';
Edit2.Text := ' ' + IntToStr(WX * 2);
Edit3.Text := ' ' + IntToStr(WY * 2);
Edit4.Text := ' ' + IntToStr(CY);
if Random(2) = 0 then
begin
X := Image1.Width div 2 + WX;
XTR := Pi / 2;
end
else begin
X := Image1.Width div 2 - WX;
XTR := -Pi / 2;
end;
Y := 0;
YTR := -Pi / 2;
St := 1;
end;
// 若St=1则进行座标计算并将点显示出来
1: begin
QTR := XTR;
XTR := XTR + DR;
DX := Round(WX * (Sin(XTR) - Sin(QTR)));
QTR := YTR;
YTR := YTR + DR * 2;
DY := Round(WY * (Sin(YTR) - Sin(QTR)));
X := X + DX;
Y := Y + DY + CY;
if DX >= 0 then
Col := clWhite
else
Col := clRed;
Image1.Canvas.Pixels[X, Y] := Col;
Image1.Canvas.Pixels[X + 1, Y] := Col;
if (Y > Image1.Width + WY) or (Y < -WY) then
St := 2;
end;
end;
end;
procedure TRei40_29.ScrollBar1Change(Sender: TObject);
begin
// 变化角(DD)的指定
DD := ScrollBar1.Position;
Edit1.Text := ' ' + IntToStr(DD);// + '亱';
DR := Pi * DD / 180;
end;
procedure TRei40_29.ScrollBar2Change(Sender: TObject);
begin
// X振幅(WX×2)的指定
WX := ScrollBar2.Position;
Edit2.Text := ' ' + IntToStr(WX * 2);
end;
procedure TRei40_29.ScrollBar3Change(Sender: TObject);
begin
// Y振幅(WY×2)的指定
WY := ScrollBar3.Position;
Edit3.Text := ' ' + IntToStr(WY * 2);
end;
procedure TRei40_29.ScrollBar4Change(Sender: TObject);
begin
// Y加算值(CY)的指定
CY := ScrollBar4.Position;
Edit4.Text := ' ' + IntToStr(CY);
end;
procedure TRei40_29.Button1Click(Sender: TObject);
begin
// 开始的指示
St := 0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -