uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs,
ExtCtrls, StdCtrls, Buttons, Menus, ComCtrls, OleCtrls;
type
TMainForm = class(TForm)
Panel1: TPanel;
Label1: TLabel;
MainMenu: TMainMenu;
File1: TMenuItem;
New1: TMenuItem;
N1: TMenuItem;
Exit1: TMenuItem;
ShapeLime: TShape;
ShapeRed: TShape;
Go: TBitBtn;
SaveDialog: TSaveDialog;
OpenDialog: TOpenDialog;
Label2: TLabel;
EditDifferent: TEdit;
PageControl1: TPageControl;
MainTaon: TTabSheet;
RedTaon: TTabSheet;
Label3: TLabel;
EditA1: TEdit;
Label4: TLabel;
EditB1: TEdit;
Label5: TLabel;
EditX1: TEdit;
Label6: TLabel;
EditY1: TEdit;
Label7: TLabel;
EditSpeedX1: TEdit;
Label8: TLabel;
EditSpeedY1: TEdit;
Label9: TLabel;
EditA2: TEdit;
Label10: TLabel;
EditB2: TEdit;
Label11: TLabel;
EditX2: TEdit;
Label12: TLabel;
EditY2: TEdit;
Label13: TLabel;
EditSpeedX2: TEdit;
Label14: TLabel;
EditSpeedY2: TEdit;
NewDiff: TButton;
ShowTime: TCheckBox;
Refresh: TSpeedButton;
Open1: TMenuItem;
Save1: TMenuItem;
BlueTaon: TTabSheet;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
EditA3: TEdit;
EditB3: TEdit;
EditX3: TEdit;
EditY3: TEdit;
EditSpeedX3: TEdit;
EditSpeedY3: TEdit;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
EditC1: TEdit;
EditD1: TEdit;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
EditC2: TEdit;
Label24: TLabel;
EditD2: TEdit;
Label25: TLabel;
Label26: TLabel;
EditC3: TEdit;
EditD3: TEdit;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
Label40: TLabel;
Label41: TLabel;
Label42: TLabel;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
Label48: TLabel;
Label49: TLabel;
Label50: TLabel;
Label51: TLabel;
Label52: TLabel;
Label53: TLabel;
Label54: TLabel;
Label55: TLabel;
Label56: TLabel;
EditA4: TEdit;
EditB4: TEdit;
EditC4: TEdit;
EditD4: TEdit;
EditX4: TEdit;
EditSpeedX4: TEdit;
EditY4: TEdit;
EditSpeedY4: TEdit;
EditA5: TEdit;
EditB5: TEdit;
EditC5: TEdit;
EditD5: TEdit;
EditX5: TEdit;
EditSpeedX5: TEdit;
EditY5: TEdit;
EditSpeedY5: TEdit;
EditA6: TEdit;
EditB6: TEdit;
EditC6: TEdit;
EditD6: TEdit;
EditX6: TEdit;
EditSpeedX6: TEdit;
EditY6: TEdit;
EditSpeedY6: TEdit;
EditX7: TEdit;
EditA7: TEdit;
EditSpeedX7: TEdit;
EditB7: TEdit;
EditSpeedY7: TEdit;
EditY7: TEdit;
Label57: TLabel;
Label58: TLabel;
EditC7: TEdit;
EditD7: TEdit;
RadioGroup1: TRadioGroup;
DispersibleRotor: TRadioButton;
BaronM: TRadioButton;
BaronMandHorse: TRadioButton;
LTime: TLabel;
Label59: TLabel;
Sling1: TRadioButton;
Sling2: TRadioButton;
Rocket: TRadioButton;
ReversibleRotor: TRadioButton;
TableOfData: TRadioButton;
Panel2: TPanel;
RadioGroup2: TRadioGroup;
E: TRadioButton;
PE: TRadioButton;
PES: TRadioButton;
PESE: TRadioButton;
ElementarySwifter: TRadioButton;
NoSwifter: TRadioButton;
Panel3: TPanel;
ScaleOfScreen: TRadioGroup;
Sc1: TRadioButton;
Sc2: TRadioButton;
Sc3: TRadioButton;
Sc4: TRadioButton;
Sc5: TRadioButton;
Sc6: TRadioButton;
RadioButton1: TRadioButton;
Panel4: TPanel;
RadioGroup3: TRadioGroup;
RadioGroup4: TRadioGroup;
Brake1: TRadioButton;
Brake4: TRadioButton;
Brake5: TRadioButton;
Brake2: TRadioButton;
Brake3: TRadioButton;
procedure Exit1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure GoClick(Sender: TObject);
procedure FormPaint(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose:
Boolean);
procedure RefreshClick(Sender: TObject);
procedure NewDiffClick(Sender: TObject);
procedure Save1Click(Sender: TObject);
procedure Open1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
// procedure LTimeDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
{$R *.DFM}
const
MaxPunkt = 7;
Ls = 260;
// Smeschenie grafika sleva
Ts = 260;
// Smeschenie grafika sverhu
var
x,y
:array[1..MaxPunkt] of extended;
A,B,C,D,
{ Parametr }
Xo,Xn,
Yo,Yn, { Xo - sootvetstvuet
x }
Vo,Vn,
Uo,Un { To ze
i po skorostjam }
:array[1..MaxPunkt] of extended;
xx,yy :array[1..MaxPunkt] of integer;
xi,yi, // temp koord.
dt
// different
:extended;
x0,y0
:integer;
Time //
Current time of System's Interrupt
: longint;
Stop //
Process stopped
: boolean;
type
AtomType = record
Ai, Bi, Ci, Di,
Xi, Yi,
Vi, Ui
:array[1..MaxPunkt] of extended;
dti :extended
end;
Atom = AtomType;
FAtomType = file of AtomType;
var
Two :Atom;
FTwo :FAtomType;
// My procedures and functions
procedure ClearScreen;
begin
with MainForm do
with Canvas do
begin
Pen.Color:=clBlack;
Brush.Color:=clBlack;
Rectangle(Left,Top,Width,Height);
end;
end;
procedure Poul;
var n:integer;
begin
with MainForm do
with Canvas do
begin
for n:=1 to MaxPunkt do
begin
if MainForm.Sc1.Checked
then
begin
xx[n]:=Round(52*X[n]);
yy[n]:=Round(52*Y[n]);
end;
if MainForm.Sc2.Checked
then
begin
xx[n]:=Round(26*X[n]);
yy[n]:=Round(26*Y[n]);
end;
if MainForm.Sc3.Checked
then
begin
xx[n]:=Round(8.6667*X[n]);
yy[n]:=Round(8.6667*Y[n]);
end;
if MainForm.Sc4.Checked
then
begin
xx[n]:=Round(2.8889*X[n]);
yy[n]:=Round(2.8889*Y[n]);
end;
if MainForm.Sc5.Checked
then
begin
xx[n]:=Round(1*X[n]);
yy[n]:=Round(1*Y[n]);
end;
if MainForm.Sc6.Checked
then
begin
xx[n]:=Round(0.5*X[n]);
yy[n]:=Round(0.5*Y[n]);
end;
A[1]:=StrToFloat(EditA1.Text);
A[2]:=StrToFloat(EditA2.Text);
A[3]:=StrToFloat(EditA3.Text);
A[4]:=StrToFloat(EditA4.Text);
A[5]:=StrToFloat(EditA5.Text);
A[6]:=StrToFloat(EditA6.Text);
A[7]:=StrToFloat(EditA7.Text);
begin
if n = 1 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clLime;
if ((n = 1) and (A[1]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
if n = 2 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clRed;
if ((n = 2) and (A[2]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
if n = 3 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clAqua;
if ((n = 3) and (A[3]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
if n = 4 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clLime;
if ((n = 4) and (A[4]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
if n = 5 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clRed;
if ((n = 5) and (A[5]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
if n = 6 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clAqua;
if ((n = 6) and (A[6]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
if n = 7 then Pixels[xx[n]+Ls,yy[n]+Ts]:=clWhite;
if ((n = 7) and (A[7]=0)) then Pixels[xx[n]+Ls,yy[n]+Ts]:=clBlack;
end;
end;
end;
//*)
end;
function St(p,g:extended):extended;
begin
St:=exp(p*ln(g));
end;
procedure Game;
var
i,j
{ Number of partikle }
:Longint;
dXv, dYv,
{ Prirashenie skorosti }
dX, dY
{ Prirashenie koordinat }
:extended;
function XUsko(im:integer):extended;
var j:integer;
Xia, pa23,pb2,pc2,pd2,pd2e,s :extended;
begin
Xia:=0;
for j:=1 to MaxPunkt do
if j<>i then
begin //3
s := Sqrt(Sqr(Xo[i]-Xo[j])+Sqr(Yo[i]-Yo[j]));
pa23:=(0.945/0.1)*St(18,(0.945/0.1)*s)*
(1+19*ln((0.945/0.1)*s))*St(-St(19,(0.945/0.1)*s),(0.945/0.1)*s)
-125*St(-14,10)*(2.7/30)*75*St(-2,(2.7/30)*s)*(1-ln((2.7/30)*s))*St(75*St(-1,(2.7/30)*s),(2.7/30)*s);
pb2:=-( St(-1,0.1*1.029/B[j])* St(-2,s)*(2.5-
St(20,1.029/B[j]*s))*(1-ln(1.029/B[j]*s))-200*1.029/B[j]*St(18,1.029/B[j]*s)
*ln(1.029/B[j]*s))*St((2.5-St(20,1.029/B[j]*s))*St(-1,0.1*1.029/B[j]*s),1.029/B[j]*s);
pc2:=-( St(-1,0.1*1.029/C[j])* St(-2,s)*(2.5-
St(20,1.029/C[j]*s))*(1-ln(1.029/C[j]*s))-200*1.029/C[j]*St(18,1.029/C[j]*s)
*ln(1.029/C[j]*s))*St((2.5-St(20,1.029/C[j]*s))*St(-1,0.1*1.029/C[j]*s),1.029/C[j]*s);
pd2:=-( St(-1,0.1*1.029/D[j])* St(-2,s)*(2.5-
St(20,1.029/D[j]*s))*(1-ln(1.029/D[j]*s))-200*1.029/D[j]*St(18,1.029/D[j]*s)
*ln(1.029/D[j]*s))*St((2.5-St(20,1.029/D[j]*s))*St(-1,0.1*1.029/D[j]*s),1.029/D[j]*s);
if (s<(4*B[j])) then
begin
pd2e:= -2* St(-1,2.72)*St(-2,(4*B[j]-s))*A[j] * B[j] * exp(-2*St(-1,2.72)*B[j]/(4*B[j]-s));
end;
if (s>(4*B[j])) then
begin
pd2e:= 2* St(-1,2.72)*St(-2,(s-4*B[j]))*A[j] * B[j] * exp(-2*St(-1,2.72)*B[j]/(s-4*B[j]));
end;
if MainForm.ReversibleRotor.Checked
then
begin //2
if j = 7 then
Xia := Xia +
(Xo[i]-Xo[j])/s *St(-2,s)*
A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
else
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.DispersibleRotor.Checked
then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.BaronM.Checked
then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.BaronMandHorse.Checked
then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.Sling1.Checked then
begin //2
if j = 7 then
Xia := Xia +
(Xo[i]-Xo[j])/s *St(-2,s)*
A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
else
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.Sling2.Checked
then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.Rocket.Checked then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if
MainForm.ElementarySwifter.Checked then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.NoSwifter.Checked then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.TableOfData.Checked then
begin
if MainForm.E.Checked then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s*St(-2,s)*A[j]*B[j]*exp(-B[j]/s);
end; //2
if MainForm.PE.Checked then
begin //2
Xia := Xia +
(Xo[i]-Xo[j])/s *St(-2,s)*
A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
end; //2
if MainForm.PES.Checked then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.PESE.Checked then
begin //2
Xia := Xia -
(Xo[i]-Xo[j])/s * A[j]* (pa23+pb2+pc2+pd2e);
end; //2
end;
end; //3
XUsko:=Xia;
end;
//***************
function YUsko(im:integer):extended;
var j:integer;
Yia, pa23,pb2,pc2,pd2,pd2e,s :extended;
begin
Yia:=0;
for j:=1 to MaxPunkt do
if j<>i then
begin //3
s := Sqrt(Sqr(Xo[i]-Xo[j])+Sqr(Yo[i]-Yo[j]));
pa23:=(0.945/0.1)*St(18,(0.945/0.1)*s)*
(1+19*ln((0.945/0.1)*s))*St(-St(19,(0.945/0.1)*s),(0.945/0.1)*s)
-125*St(-14,10)*(2.7/30)*75*St(-2,(2.7/30)*s)*(1-ln((2.7/30)*s))*St(75*St(-1,(2.7/30)*s),(2.7/30)*s);
pb2:=-( St(-1,0.1*1.029/B[j])* St(-2,s)*(2.5-
St(20,1.029/B[j]*s))*(1-ln(1.029/B[j]*s))-200*1.029/B[j]*St(18,1.029/B[j]*s)
*ln(1.029/B[j]*s))*St((2.5-St(20,1.029/B[j]*s))*St(-1,0.1*1.029/B[j]*s),1.029/B[j]*s);
pc2:=-( St(-1,0.1*1.029/C[j])* St(-2,s)*(2.5-
St(20,1.029/C[j]*s))*(1-ln(1.029/C[j]*s))-200*1.029/C[j]*St(18,1.029/C[j]*s)
*ln(1.029/C[j]*s))*St((2.5-St(20,1.029/C[j]*s))*St(-1,0.1*1.029/C[j]*s),1.029/C[j]*s);
pd2:=-( St(-1,0.1*1.029/D[j])* St(-2,s)*(2.5-
St(20,1.029/D[j]*s))*(1-ln(1.029/D[j]*s))-200*1.029/D[j]*St(18,1.029/D[j]*s)
*ln(1.029/D[j]*s))*St((2.5-St(20,1.029/D[j]*s))*St(-1,0.1*1.029/D[j]*s),1.029/D[j]*s);
if MainForm.ReversibleRotor.Checked
then
begin //2
if j = 7 then
Yia := Yia +
(Yo[i]-Yo[j])/s *St(-2,s)*
A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
else
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.DispersibleRotor.Checked
then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.BaronM.Checked
then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.BaronMandHorse.Checked
then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.Sling1.Checked then
begin //2
if j = 7 then
Yia := Yia +
(Yo[i]-Yo[j])/s *St(-2,s)*
A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
else
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.Sling2.Checked
then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.Rocket.Checked then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.ElementarySwifter.Checked then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.NoSwifter.Checked then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if
MainForm.TableOfData.Checked then
begin
if MainForm.E.Checked then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s*St(-2,s)*A[j]*B[j]*exp(-B[j]/s);
end; //2
if MainForm.PE.Checked then
begin //2
Yia := Yia +
(Yo[i]-Yo[j])/s *St(-2,s)*
A[j] * B[j] *St(B[j] / s,s) *(1-ln(s))
end; //2
if MainForm.PES.Checked then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2);
end; //2
if MainForm.PESE.Checked then
begin //2
Yia := Yia -
(Yo[i]-Yo[j])/s * A[j]* (pa23+pb2+pc2+pd2e);
end; //2
end;
end; //3
YUsko:=Yia;
end;
//***************
function Co :extended;
begin
if MainForm.Brake1.Checked then
Co:=1;
if MainForm.Brake2.Checked then
Co:=0.99994999875;
if MainForm.Brake3.Checked then
Co:=0.999499875;
if MainForm.Brake4.Checked then
Co:=0.995;
if MainForm.Brake5.Checked then
Co:=0.949;
end;
begin { Game }
if MainForm.TableOfData.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to MaxPunkt do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := Co*Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to MaxPunkt do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
if MainForm.Rocket.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to MaxPunkt do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := Co*Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to MaxPunkt do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
//****************
if MainForm.ReversibleRotor.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to (MaxPunkt-1) do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := Co*Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to (MaxPunkt-1) do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
if MainForm.DispersibleRotor.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to (MaxPunkt-1) do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := Co*Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to (MaxPunkt-1) do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
if MainForm.Sling1.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to (MaxPunkt-4) do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := Co*Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to (MaxPunkt-4) do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
if MainForm.Sling2.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to (MaxPunkt-4) do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := Co*Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to (MaxPunkt-4) do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
if MainForm.BaronM.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to (MaxPunkt-4)
do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := Co*Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to (MaxPunkt-4)
do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
if MainForm.BaronMandHorse.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to (MaxPunkt-2)
do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := Co*Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to (MaxPunkt-2)
do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
if MainForm.ElementarySwifter.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to (MaxPunkt-5)
do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := {Co*}Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to (MaxPunkt-5)
do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
if MainForm.NoSwifter.Checked then
begin //1
{ Calculation of new value of koord and velo. }
for i:=1 to (MaxPunkt-5)
do
begin
// X
dXv := XUsko(i) * dt; // + velo
Vn[i] := Co*Vn[i] + dXv; // New x velo
dX := Vn[i] * dt; // + koord
Xn[i] := Xn[i] + dX; // New koordinat
// Y
dYv := YUsko(i) * dt; // + velo
Un[i] := {Co*}Un[i] + dYv; // New x velo
dY := Un[i] * dt; // + koord
Yn[i] := Yn[i] + dY; // New koordinat
end;
{ The new value send to Xo and Vo }
for i:=1 to (MaxPunkt-5)
do
begin
Xo[i]:=Xn[i]; Vo[i]:=Vn[i];
Yo[i]:=Yn[i]; Uo[i]:=Un[i];
x[i]:=Xn[i];
y[i]:=Yn[i];
end;
end;//1
//**********************
inc(Time);
if MainForm.ShowTime.Checked then
MainForm.LTime.Caption:=IntToStr(Time);
// Show result
Poul;
//
end;
procedure Eval;
begin
repeat
Game;
Poul;
Application.ProcessMessages;
until Stop;
end;
//**************************************
// End procedures & functions
procedure TMainForm.Exit1Click(Sender: TObject);
begin
Close
end;
procedure TMainForm.FormCreate(Sender: TObject);
var n:integer;
begin
Left:=0;Top:=0;
Stop:=true;
// Input data default
// if MainForm.ReversibleRotor.Checked then
// begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=1.03;
x[1]:=4.127;
Xo[1]:=x[1];
y[1]:=-0.032;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=0;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=1.03;
x[2]:=4.084;
Xo[2]:=x[2];
y[2]:=0.388;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=0;
A[3]:=100;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=1.03;
x[3]:=4.47;
Xo[3]:=x[3];
y[3]:=0.215;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=100;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=1.03;
x[4]:=-1.454;
Xo[4]:=x[4];
y[4]:=0.403;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=100;
B[5]:=0.3;
C[5]:=0.42395;
D[5]:=1.03;
x[5]:=-1.414;
Xo[5]:=x[5];
y[5]:=-0.0175;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=100;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=1.03;
x[6]:=-1.798;
Xo[6]:=x[6];
y[6]:=0.158;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=1000;
B[7]:=2.718;
C[7]:=1;
D[7]:=1;
x[7]:=1.336;
Xo[7]:=x[7];
y[7]:=0.175;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
// end;
//************************
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
end;
procedure TMainForm.GoClick(Sender: TObject);
begin
if not Stop
then
begin
Go.Kind:=bkOK;
Go.Caption:='Go';
ShapeRed.Brush.Color:=clMaroon;
ShapeLime.Brush.Color:=clLime;
Refresh.Enabled:=true;
Open1.Enabled:=true;
Stop:=true;
end
else
begin
Go.Kind:=bkCancel;
Go.Caption:='Stop';
ShapeRed.Brush.Color:=clRed;
ShapeLime.Brush.Color:=clGreen;
Refresh.Enabled:=false;
Open1.Enabled:=false;
Stop:=false;
Eval;
end;
end;
procedure TMainForm.FormPaint(Sender: TObject);
begin
ClearScreen;
Poul;
end;
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Stop:=true;
end;
procedure TMainForm.RefreshClick(Sender: TObject);
var n:integer;
begin
// Input data default
//*************************
//**************************
if MainForm.ReversibleRotor.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=1.03;
x[1]:=4.127;
Xo[1]:=x[1];
y[1]:=-0.032;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=0;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=1.03;
x[2]:=4.084;
Xo[2]:=x[2];
y[2]:=0.388;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=0;
A[3]:=100;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=1.03;
x[3]:=4.47;
Xo[3]:=x[3];
y[3]:=0.215;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=100;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=1.03;
x[4]:=-1.454;
Xo[4]:=x[4];
y[4]:=0.403;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=100;
B[5]:=0.3;
C[5]:=0.42395;
D[5]:=1.03;
x[5]:=-1.414;
Xo[5]:=x[5];
y[5]:=-0.0175;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=100;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=1.03;
x[6]:=-1.798;
Xo[6]:=x[6];
y[6]:=0.158;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=1000;
B[7]:=2.718;
C[7]:=1;
D[7]:=1;
x[7]:=1.336;
Xo[7]:=x[7];
y[7]:=0.175;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
if MainForm.DispersibleRotor.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=1.03;
x[1]:=1.36;
Xo[1]:=x[1];
y[1]:=0.12;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=0;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=1.03;
x[2]:=0.98;
Xo[2]:=x[2];
y[2]:=0.3;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=0;
A[3]:=100;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=1.03;
x[3]:=1;
Xo[3]:=x[3];
y[3]:=-0.11;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=100;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=1.03;
x[4]:=-1.36;
Xo[4]:=x[4];
y[4]:=-0.12;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=100;
B[5]:=0.3;
C[5]:=0.42395;
D[5]:=1.03;
x[5]:=-0.98;
Xo[5]:=x[5];
y[5]:=-0.3;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=100;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=1.03;
x[6]:=-1;
Xo[6]:=x[6];
y[6]:=0.11;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=100;
B[7]:=0.3;
C[7]:=0.424;
D[7]:=1.03;
x[7]:=0;
Xo[7]:=x[7];
y[7]:=0;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
//***********************
end;
if MainForm.BaronM.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=2;
x[1]:=-4;
Xo[1]:=x[1];
y[1]:=0.216;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=0;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=2;
x[2]:=-3.65;
Xo[2]:=x[2];
y[2]:=0;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=0;
A[3]:=100;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=2;
x[3]:=-4;
Xo[3]:=x[3];
y[3]:=-0.216;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=0;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=1.03;
x[4]:=-1000.36;
Xo[4]:=x[4];
y[4]:=100;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=0;
B[5]:=0.3;
C[5]:=0.42395;
D[5]:=1.03;
x[5]:=-1010.98;
Xo[5]:=x[5];
y[5]:=101;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=0;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=1.03;
x[6]:=1090;
Xo[6]:=x[6];
y[6]:=0.11;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=0;
B[7]:=0.3;
C[7]:=0.42395;
D[7]:=1.03;
x[7]:=1001;
Xo[7]:=x[7];
y[7]:=200;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
if MainForm.BaronMandHorse.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=2;
x[1]:=-4;
Xo[1]:=x[1];
y[1]:=0.214;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=0;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=2;
x[2]:=-3.66;
Xo[2]:=x[2];
y[2]:=0;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=0;
A[3]:=100;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=2;
x[3]:=-4;
Xo[3]:=x[3];
y[3]:=-0.214;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=100;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=2;
x[4]:=-4.424;
Xo[4]:=x[4];
y[4]:=-0.214;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=100;
B[5]:=0.3;
C[5]:=0.424;
D[5]:=2;
x[5]:=-4.424;
Xo[5]:=x[5];
y[5]:=0.214;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=0;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=2;
x[6]:=1021;
Xo[6]:=x[6];
y[6]:=0.214;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=0;
B[7]:=0.3;
C[7]:=0.424;
D[7]:=2;
x[7]:=1100;
Xo[7]:=x[7];
y[7]:=10;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
if MainForm.Rocket.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=2;
x[1]:=-4;
Xo[1]:=x[1];
y[1]:=0.212;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=0;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=2;
x[2]:=-3.66;
Xo[2]:=x[2];
y[2]:=0;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=0;
A[3]:=100;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=2;
x[3]:=-4;
Xo[3]:=x[3];
y[3]:=-0.212;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=100;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=2;
x[4]:=-4.424;
Xo[4]:=x[4];
y[4]:=-0.212;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=100;
B[5]:=0.3;
C[5]:=0.424;
D[5]:=2;
x[5]:=-4.424;
Xo[5]:=x[5];
y[5]:=0.212;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=100;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=2;
x[6]:=-4.848;
Xo[6]:=x[6];
y[6]:=0.216;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=100;
B[7]:=0.3;
C[7]:=0.424;
D[7]:=2;
x[7]:=-4.848;
Xo[7]:=x[7];
y[7]:=-0.216;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
if MainForm.Sling1.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=1.03;
x[1]:=4.127;
Xo[1]:=x[1];
y[1]:=-0.032;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=0;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=1.03;
x[2]:=4.084;
Xo[2]:=x[2];
y[2]:=0.388;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=0;
A[3]:=100;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=1.03;
x[3]:=4.47;
Xo[3]:=x[3];
y[3]:=0.215;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=0;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=1.03;
x[4]:=-10110.454;
Xo[4]:=x[4];
y[4]:=0.403;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=0;
B[5]:=0.3;
C[5]:=0.42395;
D[5]:=1.03;
x[5]:=1100.414;
Xo[5]:=x[5];
y[5]:=-0.0175;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=0;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=1.03;
x[6]:=-1050.798;
Xo[6]:=x[6];
y[6]:=0.158;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=1000;
B[7]:=2.718;
C[7]:=1;
D[7]:=1;
x[7]:=1.336;
Xo[7]:=x[7];
y[7]:=0.175;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
if MainForm.Sling2.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=1.03;
x[1]:=1.36;
Xo[1]:=x[1];
y[1]:=0.12;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=0;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=1.03;
x[2]:=0.98;
Xo[2]:=x[2];
y[2]:=0.3;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=0;
A[3]:=100;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=1.03;
x[3]:=1;
Xo[3]:=x[3];
y[3]:=-0.11;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=0;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=1.03;
x[4]:=-1110.36;
Xo[4]:=x[4];
y[4]:=-0.12;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=0;
B[5]:=0.3;
C[5]:=0.42395;
D[5]:=1.03;
x[5]:=-1021.98;
Xo[5]:=x[5];
y[5]:=-0.3;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=0;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=1.03;
x[6]:=-1061;
Xo[6]:=x[6];
y[6]:=0.11;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=100;
B[7]:=0.3;
C[7]:=0.424;
D[7]:=1.03;
x[7]:=0;
Xo[7]:=x[7];
y[7]:=0;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
if MainForm.ElementarySwifter.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=2;
x[1]:=-4.074;
Xo[1]:=x[1];
y[1]:=4;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=-0.1;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.42395;
D[2]:=2;
x[2]:=-3.65;
Xo[2]:=x[2];
y[2]:=4;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=-0.1;
A[3]:=0;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=2;
x[3]:=-40001;
Xo[3]:=x[3];
y[3]:=-0.216;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=0;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=1.03;
x[4]:=-1000.36;
Xo[4]:=x[4];
y[4]:=100;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=0;
B[5]:=0.3;
C[5]:=0.42395;
D[5]:=1.03;
x[5]:=-1010.98;
Xo[5]:=x[5];
y[5]:=101;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=0;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=1.03;
x[6]:=1090;
Xo[6]:=x[6];
y[6]:=0.11;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=0;
B[7]:=0.3;
C[7]:=0.42395;
D[7]:=1.03;
x[7]:=1001;
Xo[7]:=x[7];
y[7]:=200;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
if MainForm.NoSwifter.Checked then
begin
A[1]:=100;
B[1]:=0.3;
C[1]:=0.424;
D[1]:=4;
x[1]:=-2.2;
Xo[1]:=x[1];
y[1]:=4;
Yo[1]:=y[1];
Vo[1]:=0;
Uo[1]:=-0.1;
A[2]:=100;
B[2]:=0.3;
C[2]:=0.424;
D[2]:=4;
x[2]:=2.2;
Xo[2]:=x[2];
y[2]:=4;
Yo[2]:=y[2];
Vo[2]:=0;
Uo[2]:=-0.1;
A[3]:=0;
B[3]:=0.3;
C[3]:=0.424;
D[3]:=2;
x[3]:=-4000;
Xo[3]:=x[3];
y[3]:=-0.216;
Yo[3]:=y[3];
Vo[3]:=0;
Uo[3]:=0;
A[4]:=0;
B[4]:=0.3;
C[4]:=0.424;
D[4]:=1.03;
x[4]:=-1000.36;
Xo[4]:=x[4];
y[4]:=100;
Yo[4]:=y[4];
Vo[4]:=0;
Uo[4]:=0;
A[5]:=0;
B[5]:=0.3;
C[5]:=0.42395;
D[5]:=1.03;
x[5]:=-1010.98;
Xo[5]:=x[5];
y[5]:=101;
Yo[5]:=y[5];
Vo[5]:=0;
Uo[5]:=0;
A[6]:=0;
B[6]:=0.3;
C[6]:=0.424;
D[6]:=1.03;
x[6]:=1090;
Xo[6]:=x[6];
y[6]:=0.11;
Yo[6]:=y[6];
Vo[6]:=0;
Uo[6]:=0;
A[7]:=0;
B[7]:=0.3;
C[7]:=0.42395;
D[7]:=1.03;
x[7]:=1001;
Xo[7]:=x[7];
y[7]:=200;
Yo[7]:=y[7];
Vo[7]:=0;
Uo[7]:=0;
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
if MainForm.TableOfData.Checked then
begin
A[1]:=StrToFloat(EditA1.Text);
B[1]:=StrToFloat(EditB1.Text);
C[1]:=StrToFloat(EditC1.Text);
D[1]:=StrToFloat(EditD1.Text);
X[1]:=StrToFloat(EditX1.Text);
Y[1]:=StrToFloat(EditY1.Text);
Vn[1]:=StrToFloat(EditSpeedX1.Text);
Un[1]:=StrToFloat(EditSpeedY1.Text);
A[2]:=StrToFloat(EditA2.Text);
B[2]:=StrToFloat(EditB2.Text);
C[2]:=StrToFloat(EditC2.Text);
D[2]:=StrToFloat(EditD2.Text);
X[2]:=StrToFloat(EditX2.Text);
Y[2]:=StrToFloat(EditY2.Text);
Vn[2]:=StrToFloat(EditSpeedX2.Text);
Un[2]:=StrToFloat(EditSpeedY2.Text);
A[3]:=StrToFloat(EditA3.Text);
B[3]:=StrToFloat(EditB3.Text);
C[3]:=StrToFloat(EditC3.Text);
D[3]:=StrToFloat(EditD3.Text);
X[3]:=StrToFloat(EditX3.Text);
Y[3]:=StrToFloat(EditY3.Text);
Vn[3]:=StrToFloat(EditSpeedX3.Text);
Un[3]:=StrToFloat(EditSpeedY3.Text);
A[4]:=StrToFloat(EditA4.Text);
B[4]:=StrToFloat(EditB4.Text);
C[4]:=StrToFloat(EditC4.Text);
D[4]:=StrToFloat(EditD4.Text);
X[4]:=StrToFloat(EditX4.Text);
Y[4]:=StrToFloat(EditY4.Text);
Vn[4]:=StrToFloat(EditSpeedX4.Text);
Un[4]:=StrToFloat(EditSpeedY4.Text);
A[5]:=StrToFloat(EditA5.Text);
B[5]:=StrToFloat(EditB5.Text);
C[5]:=StrToFloat(EditC5.Text);
D[5]:=StrToFloat(EditD5.Text);
X[5]:=StrToFloat(EditX5.Text);
Y[5]:=StrToFloat(EditY5.Text);
Vn[5]:=StrToFloat(EditSpeedX5.Text);
Un[5]:=StrToFloat(EditSpeedY5.Text);
A[6]:=StrToFloat(EditA6.Text);
B[6]:=StrToFloat(EditB6.Text);
C[6]:=StrToFloat(EditC6.Text);
D[6]:=StrToFloat(EditD6.Text);
X[6]:=StrToFloat(EditX6.Text);
Y[6]:=StrToFloat(EditY6.Text);
Vn[6]:=StrToFloat(EditSpeedX6.Text);
Un[6]:=StrToFloat(EditSpeedY6.Text);
A[7]:=StrToFloat(EditA7.Text);
B[7]:=StrToFloat(EditB7.Text);
C[7]:=StrToFloat(EditC7.Text);
D[7]:=StrToFloat(EditD7.Text);
X[7]:=StrToFloat(EditX7.Text);
Y[7]:=StrToFloat(EditY7.Text);
Vn[7]:=StrToFloat(EditSpeedX7.Text);
Un[7]:=StrToFloat(EditSpeedY7.Text);
//888888888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
//888888888888888888888888
end;
//************************
dt:=StrToFloat(EditDifferent.Text);
Xn[1]:=x[1];Xo[1]:=x[1];Vo[1]:=Vn[1];
Xn[2]:=x[2];Xo[2]:=x[2];Vo[2]:=Vn[2];
Xn[3]:=x[3];Xo[3]:=x[3];Vo[3]:=Vn[3];
Xn[4]:=x[4];Xo[4]:=x[4];Vo[4]:=Vn[4];
Xn[5]:=x[5];Xo[5]:=x[5];Vo[5]:=Vn[5];
Xn[6]:=x[6];Xo[6]:=x[6];Vo[6]:=Vn[6];
Xn[7]:=x[7];Xo[7]:=x[7];Vo[7]:=Vn[7];
Yn[1]:=y[1];Yo[1]:=y[1];Uo[1]:=Un[1];
Yn[2]:=y[2];Yo[2]:=y[2];Uo[2]:=Un[2];
Yn[3]:=y[3];Yo[3]:=y[3];Uo[3]:=Un[3];
Yn[4]:=y[4];Yo[4]:=y[4];Uo[4]:=Un[4];
Yn[5]:=y[5];Yo[5]:=y[5];Uo[5]:=Un[5];
Yn[6]:=y[6];Yo[6]:=y[6];Uo[6]:=Un[6];
Yn[7]:=y[7];Yo[7]:=y[7];Uo[7]:=Un[7];
//for save file
with Two do begin
for n:=1 to MaxPunkt do
begin
Ai[n]:=A[n];Bi[n]:=B[n];
Ci[n]:=C[n];Di[n]:=D[n];
end;
Xi[1]:=StrToFloat(EditX1.Text);
Yi[1]:=StrToFloat(EditY1.Text);
Vi[1]:=StrToFloat(EditSpeedX1.Text);
Ui[1]:=StrToFloat(EditSpeedY1.Text);
Xi[2]:=StrToFloat(EditX2.Text);
Yi[2]:=StrToFloat(EditY2.Text);
Vi[2]:=StrToFloat(EditSpeedX2.Text);
Ui[2]:=StrToFloat(EditSpeedY2.Text);
Xi[3]:=StrToFloat(EditX3.Text);
Yi[3]:=StrToFloat(EditY3.Text);
Vi[3]:=StrToFloat(EditSpeedX3.Text);
Ui[3]:=StrToFloat(EditSpeedY3.Text);
Xi[4]:=StrToFloat(EditX4.Text);
Yi[4]:=StrToFloat(EditY4.Text);
Vi[4]:=StrToFloat(EditSpeedX4.Text);
Ui[4]:=StrToFloat(EditSpeedY4.Text);
Xi[5]:=StrToFloat(EditX5.Text);
Yi[5]:=StrToFloat(EditY5.Text);
Vi[5]:=StrToFloat(EditSpeedX5.Text);
Ui[5]:=StrToFloat(EditSpeedY5.Text);
Xi[6]:=StrToFloat(EditX6.Text);
Yi[6]:=StrToFloat(EditY6.Text);
Vi[6]:=StrToFloat(EditSpeedX6.Text);
Ui[6]:=StrToFloat(EditSpeedY6.Text);
Xi[7]:=StrToFloat(EditX7.Text);
Yi[7]:=StrToFloat(EditY7.Text);
Vi[7]:=StrToFloat(EditSpeedX7.Text);
Ui[7]:=StrToFloat(EditSpeedY7.Text);
dti:=dt;
end;//Two
//for save file
Time:=0;
LTime.Caption:=IntToStr(Time);
ClearScreen;
Poul;
end;
procedure TMainForm.NewDiffClick(Sender: TObject);
begin
dt:=StrToFloat(EditDifferent.Text);
end;
procedure TMainForm.Save1Click(Sender: TObject);
begin
if SaveDialog.Execute then
begin
AssignFile(FTwo,SaveDialog.FileName);
Rewrite(FTwo);
Write(FTwo, Two);
CloseFile(FTwo);
end;
end;
procedure TMainForm.Open1Click(Sender: TObject);
var n:integer;
begin
if OpenDialog.Execute then
begin
AssignFile(FTwo,OpenDialog.FileName);
Reset(FTwo);
Read(FTwo, Two);
CloseFile(FTwo);
// Input data default
with Two do
begin
for n:=1 to MaxPunkt do
begin
A[n]:=Ai[n];B[n]:=Bi[n];
C[n]:=Ci[n];D[n]:=Di[n];
x[n]:=Xi[n];y[n]:=Yi[n];
Xo[n]:=x[n];Yo[n]:=y[n];
Xn[n]:=x[n];Yn[n]:=y[n];
Vo[n]:=Vi[n];Uo[n]:=Ui[n];
Vn[n]:=Vi[n];Un[n]:=Ui[n];
end;
dt:=dti;
end;
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
EditDifferent.Text:=FloatToStr(dt);
ClearScreen;
Poul;
end;
//88888888888888888888888888
if MainForm.TableOfData.Checked then
begin
A[1]:=StrToFloat(EditA1.Text);
B[1]:=StrToFloat(EditB1.Text);
C[1]:=StrToFloat(EditC1.Text);
D[1]:=StrToFloat(EditD1.Text);
X[1]:=StrToFloat(EditX1.Text);
Y[1]:=StrToFloat(EditY1.Text);
Vn[1]:=StrToFloat(EditSpeedX1.Text);
Un[1]:=StrToFloat(EditSpeedY1.Text);
A[2]:=StrToFloat(EditA2.Text);
B[2]:=StrToFloat(EditB2.Text);
C[2]:=StrToFloat(EditC2.Text);
D[2]:=StrToFloat(EditD2.Text);
X[2]:=StrToFloat(EditX2.Text);
Y[2]:=StrToFloat(EditY2.Text);
Vn[2]:=StrToFloat(EditSpeedX2.Text);
Un[2]:=StrToFloat(EditSpeedY2.Text);
A[3]:=StrToFloat(EditA3.Text);
B[3]:=StrToFloat(EditB3.Text);
C[3]:=StrToFloat(EditC3.Text);
D[3]:=StrToFloat(EditD3.Text);
X[3]:=StrToFloat(EditX3.Text);
Y[3]:=StrToFloat(EditY3.Text);
Vn[3]:=StrToFloat(EditSpeedX3.Text);
Un[3]:=StrToFloat(EditSpeedY3.Text);
A[4]:=StrToFloat(EditA4.Text);
B[4]:=StrToFloat(EditB4.Text);
C[4]:=StrToFloat(EditC4.Text);
D[4]:=StrToFloat(EditD4.Text);
X[4]:=StrToFloat(EditX4.Text);
Y[4]:=StrToFloat(EditY4.Text);
Vn[4]:=StrToFloat(EditSpeedX4.Text);
Un[4]:=StrToFloat(EditSpeedY4.Text);
A[5]:=StrToFloat(EditA5.Text);
B[5]:=StrToFloat(EditB5.Text);
C[5]:=StrToFloat(EditC5.Text);
D[5]:=StrToFloat(EditD5.Text);
X[5]:=StrToFloat(EditX5.Text);
Y[5]:=StrToFloat(EditY5.Text);
Vn[5]:=StrToFloat(EditSpeedX5.Text);
Un[5]:=StrToFloat(EditSpeedY5.Text);
A[6]:=StrToFloat(EditA6.Text);
B[6]:=StrToFloat(EditB6.Text);
C[6]:=StrToFloat(EditC6.Text);
D[6]:=StrToFloat(EditD6.Text);
X[6]:=StrToFloat(EditX6.Text);
Y[6]:=StrToFloat(EditY6.Text);
Vn[6]:=StrToFloat(EditSpeedX6.Text);
Un[6]:=StrToFloat(EditSpeedY6.Text);
A[7]:=StrToFloat(EditA7.Text);
B[7]:=StrToFloat(EditB7.Text);
C[7]:=StrToFloat(EditC7.Text);
D[7]:=StrToFloat(EditD7.Text);
X[7]:=StrToFloat(EditX7.Text);
Y[7]:=StrToFloat(EditY7.Text);
Vn[7]:=StrToFloat(EditSpeedX7.Text);
Un[7]:=StrToFloat(EditSpeedY7.Text);
//888888888888888888
EditA1.Text:=FloatToStr(A[1]);
EditB1.Text:=FloatToStr(B[1]);
EditC1.Text:=FloatToStr(C[1]);
EditD1.Text:=FloatToStr(D[1]);
EditX1.Text:=FloatToStr(Xo[1]);
EditY1.Text:=FloatToStr(Yo[1]);
EditSpeedX1.Text:=FloatToStr(Vo[1]);
EditSpeedY1.Text:=FloatToStr(Uo[1]);
EditA2.Text:=FloatToStr(A[2]);
EditB2.Text:=FloatToStr(B[2]);
EditC2.Text:=FloatToStr(C[2]);
EditD2.Text:=FloatToStr(D[2]);
EditX2.Text:=FloatToStr(Xo[2]);
EditY2.Text:=FloatToStr(Yo[2]);
EditSpeedX2.Text:=FloatToStr(Vo[2]);
EditSpeedY2.Text:=FloatToStr(Uo[2]);
EditA3.Text:=FloatToStr(A[3]);
EditB3.Text:=FloatToStr(B[3]);
EditC3.Text:=FloatToStr(C[3]);
EditD3.Text:=FloatToStr(D[3]);
EditX3.Text:=FloatToStr(Xo[3]);
EditY3.Text:=FloatToStr(Yo[3]);
EditSpeedX3.Text:=FloatToStr(Vo[3]);
EditSpeedY3.Text:=FloatToStr(Uo[3]);
{ DP }
EditA4.Text:=FloatToStr(A[4]);
EditB4.Text:=FloatToStr(B[4]);
EditC4.Text:=FloatToStr(C[4]);
EditD4.Text:=FloatToStr(D[4]);
EditX4.Text:=FloatToStr(Xo[4]);
EditY4.Text:=FloatToStr(Yo[4]);
EditSpeedX4.Text:=FloatToStr(Vo[4]);
EditSpeedY4.Text:=FloatToStr(Uo[4]);
EditA5.Text:=FloatToStr(A[5]);
EditB5.Text:=FloatToStr(B[5]);
EditC5.Text:=FloatToStr(C[5]);
EditD5.Text:=FloatToStr(D[5]);
EditX5.Text:=FloatToStr(Xo[5]);
EditY5.Text:=FloatToStr(Yo[5]);
EditSpeedX5.Text:=FloatToStr(Vo[5]);
EditSpeedY5.Text:=FloatToStr(Uo[5]);
EditA6.Text:=FloatToStr(A[6]);
EditB6.Text:=FloatToStr(B[6]);
EditC6.Text:=FloatToStr(C[6]);
EditD6.Text:=FloatToStr(D[6]);
EditX6.Text:=FloatToStr(Xo[6]);
EditY6.Text:=FloatToStr(Yo[6]);
EditSpeedX6.Text:=FloatToStr(Vo[6]);
EditSpeedY6.Text:=FloatToStr(Uo[6]);
EditA7.Text:=FloatToStr(A[7]);
EditB7.Text:=FloatToStr(B[7]);
EditC7.Text:=FloatToStr(C[7]);
EditD7.Text:=FloatToStr(D[7]);
EditX7.Text:=FloatToStr(Xo[7]);
EditY7.Text:=FloatToStr(Yo[7]);
EditSpeedX7.Text:=FloatToStr(Vo[7]);
EditSpeedY7.Text:=FloatToStr(Uo[7]);
{ DP }
//***********************
for n:=1 to MaxPunkt do
begin
Xn[n]:=Xo[n];
Yn[n]:=Yo[n];
Vn[n]:=Vo[n];
Un[n]:=Uo[n];
end;
dt:=0.0005;
EditDifferent.Text:=FloatToStr(dt);
end;
end;
procedure TMainForm.FormActivate(Sender: TObject);
begin
ClearScreen;
Poul;
end;
end.