- , , . , FCR GM, GMTI, SEA BCN, , FCR SOI.
- FCR SOI, FCR, COMM(. 1-72). , OSB 6 HSD . , , , .
( )
, , . , "DATA", CURSOR DATA HUD.HUD , (13 ), WARN RESET ICP. - HSD / FCR , FCR : GM, GMTI, SEA, BCN. , . . . .
( )
2. / 1
/ 1
:
, . . .
. , . . , . , , . , .
. .
:
. .
|
|
- :
:
: , .
: , .
:
, .
: , . .
1 |
-1 |
1 |
1 |
/ 2
:
. .
/ :
- ,
- ,
( ).
.
:
.
- :
:
: , .
: , .
:
, .
: , ( ). .
1 |
1 |
1 |
1 |
/ 3
:
.
, . , . . , . .
:
.
- :
:
: , , .
: , .
:
, .
:
-1 |
1 |
1 . |
1 |
|
|
3 |
/ 4
:
, .. . , ..
:
. .
- :
:
: , .
: , , , .
:
.
. , , , .
. , / .
, ,
, .
1 |
-1 |
- 2 |
-2 |
-1 |
3-4. /
()
/ 1
/ 2
/ 3
/ 4
X1 | X2 | X3 | X4 | X5 | X6 | X7 | X8 | X9 | |
- | - | - | - | - | 1.1 | ||||
- | - | - | - | - | 1.2 | ||||
- | - | 2.1 | |||||||
- | - | 2.2 | |||||||
- | 2.3 | ||||||||
- | - | 3.1 | |||||||
- | - | 3.2 | |||||||
- | - | 3.3 | |||||||
- | 4.1 | ||||||||
- | - | 4.2 | |||||||
- | - | 4.3 |
/
1. ;
2. ;
3. ;
4. ;
5. ;
6. ;
7. ;
8. .
, .
(0,Z0), (3,Z3).
:
- (3,Z3) (2,Z2);
- R ( ) (2,Z2) (1,Z1);
- .
:
1) ψ:
2) (2,Z2):
3) (1,Z1):
4) (0,Z0).
, ψ. . ψ.
|
|
. , .
(X,Z), (3,Z3). (5,Z5), θ.
:
- (Ւ5,Z5) (Ւ4,Z4);
- R ( ) (Ւ4,Z4) (Ւ3,Z3);
:
1) D0
2) (Ւ4,Z4):
3) (Ւ3,Z3):
.
- ( )
, /++ VisualStudio 2010;
:
1:
Vs = 250;
Xs = 20000;
Zs = 15000;
n = 2.5;
gamma = 30*Pi/180;
Dv = 5000;
2: //
doubleXc = 15000;
doubleZc = 15000;
doublealph = 30;
// , , X
void DrawSK2 (double x0, double z0, double angle)
{
while (angle >= 2*Pi) angle -= 2*Pi;
doubleNew_Top_Z, New_Down_Z;
doubleNew_Left_X, New_Right_X;
x0 = MashtabX(x0);
z0 = MashtabZ(z0);
New_Top_Z = z0+tan(angle)*(Left_X-x0);
New_Down_Z = z0+tan(angle)*(Right_X-x0);
New_Left_X = x0+tan(angle)*(z0-Down_Z);
New_Right_X = x0+tan(angle)*(z0-Top_Z);
SelectObject(hdc, Brush_bl);
Ellipse (hdc, x0-4, z0-4, x0+4, z0+4);
if (angle == 90*Pi/180)
{
MoveToEx(hdc, x0,Top_Z, NULL);
LineTo(hdc, x0, Down_Z);
MoveToEx(hdc, Left_X,z0, NULL);
LineTo(hdc, Right_X, z0);
}
elseif (angle == 270*Pi/180)
{
MoveToEx(hdc, x0,Down_Z, NULL);
LineTo(hdc, x0, Top_Z);
MoveToEx(hdc, Right_X,z0, NULL);
LineTo(hdc, Left_X, z0);
}
else
{
MoveToEx(hdc, Left_X, New_Top_Z, NULL);
LineTo(hdc, Right_X, New_Down_Z);
MoveToEx(hdc, New_Left_X,Down_Z, NULL);
LineTo(hdc, New_Right_X, Top_Z);
}
3:
//
R = Vs*Vs / (g*n);
//
R1= R;
Xr1= Xs - R1*sin(gamma);
Zr1= Zs - R1*cos(gamma);
//
R2= R;
Xr2= Dv;
Zr2= R2;
4:
//
void Tangent (double Xr1, double Zr1, double R1, double Xr2, double Zr2,double R2, double *Xk1, double *Zk1, double *Xk2, double*Zk2, double *angle)
{
double alpha1 = asin ((R1-R2)/ sqrt ((Zr2-Zr1)*(Zr2-Zr1)+(Xr2-Xr1)*(Xr2-Xr1)));
double alpha2 = atan ((Zr2-Zr1)/(Xr2-Xr1));
double alpha = alpha1 + alpha2;
*Xk1 = Xr1 + R1 * sin (alpha);
|
|
*Zk1 = Zr1 - R1 * cos (alpha);
*Xk2 = Xr2 + R2 * sin (alpha);
*Zk2 = Zr2 - R2 * cos (alpha);
*angle = atan((*Zk2-*Zk1) / (*Xk2-*Xk1));
}
// (2,Z2) (3,Z3);
Tangent (Xr1, Zr1, R1, Xr2, Zr2, R2, &Xk1, &Zk1, &Xk2, &Zk2,&angle);
5,6,7:
// (2,Z2) (3,Z3);
Tangent (Xr2, Zr2, R2, Xzu, Zzu, Rzu, &Xk1, &Zk1, &Xk2, &Zk2,&angle);
//
CrossPoint (Xk1, Zk1, Xk2, Zk2, Xs,Zs,Xs+3000*cos(gamma),Zs-3000*sin(gamma),&Xcr,&Zcr);
// (4,Z4) (5,Z5);
psi = angle;
Xr1= Xcr - R1 * sin(Pi/2 + gamma/2 - psi/2) / sin(psi/2 + gamma/2);
Zr1= Zcr - R1 * cos(Pi/2 + gamma/2 - psi/2) / sin(psi/2 + gamma/2);
X4 = Xcr - R * sin (Pi/2 - psi) / tan (psi/2 + gamma/2);
Z4 = Zcr - R * cos (Pi/2 - psi) / tan (psi/2 + gamma/2);
X5 = Xcr - R * cos (gamma) / tan (psi/2 + gamma/2);
Z5 = Zcr + R * sin (gamma) / tan (psi/2 + gamma/2);
, ( ):
1)
2)
3)
, ( ):