📄 fun.cpp
字号:
#include "defines.h"
#include <math.h>
const float v_sound = 334.0f;
//#include "stdafx.h" //The file is a default precompile header of a project, so any "#include" written ahead of it will be ignored.
#include <iostream> //Now, let's try to put it afterward.
using namespace std;
double Cx_function(double v) //取攻角固定 为0.2094
{
double ma = v/v_sound;
double cx = 0;
if(ma<0.7)
cx = 0.45;
else if((ma>=0.7)&&(ma<0.8))
cx = 0.51+(ma-0.7)*(0.56-0.51)/0.1;
else if((ma>=0.8)&&(ma<0.9))
cx = 0.56+(ma-0.8)*(0.59-0.56)/0.1;
else if((ma>=0.9)&&(ma<1))
cx = 0.59+(ma-0.9)*(0.77-0.59)/0.1;
else if((ma>=1)&&(ma<1.1))
cx = 0.77+(ma-1)*(0.93-0.77)/0.1;
else
cout<<"v unavilable"<<endl;
cx = 0.9;
return cx;
}
/*
double Cy_function(double c_ang)
{
double cy = 0;
if((c_ang>=0)&&(c_ang<=0.3491))
cy = c_ang*0.54/0.3491;
else
cout<<"c_ang wrong"<<endl;
/*
if(c_ang == 0)
cy = 0;
else if(c_ang == 0.3491)
cy = 0.54;
else
cout<<"c_ang wrong"<<endl;
return cy;
}
double Dvdt_function_a(double v, double ang, double x, double y)
{
return -0.5/m*1.225*s*Cx_function(v)*1000;//-g*sin(ang);
}
double Dvdt_function_b(double v, double ang, double x, double y)
{
return -g*sin(ang);
}
double V_f(double t, double v, double a, double b)
{
return a*v*v+b;
}
double Dangdt_function_a(double v, double ang, double x, double y, double c_ang)
{
return -g/v;// *cos(ang);//+0.5/m*1.225*s*(1-y/44300)*Cy_function(v,c_ang)*v*v;
}
double Dangdt_function_b(double v, double ang, double x, double y, double c_ang)
{
return 0.5/m*1.225*s*Cy_function(c_ang)*v*1000;
}
double Ang_f(double t, double ang, double a, double b)
{
return a*cos(ang)+b;
}
double Ang_f1(double t, double ang, double a, double b)
{
return 0;
}
double Dxdt_function(double v, double ang, double x, double y)
{
return v*cos(ang);
}
double X_f(double t, double x, double a)
{
return a;
}
double Dydt_function(double v, double ang, double x, double y)
{
return v*sin(ang);
}
double Y_f(double t, double y, double a)
{
return a;
}
double Ds_angdt_function(double v, double ang)
{
return 0.5/m*1.225*1000*v*s*0.54/cos(ang);
}
double S_ang_f(double t, double s_ang, double a)
{
return a;
}
double Dzdt_function(double v, double ang, double s_ang)
{
return -v*cos(ang)*sin(s_ang);
}
double Z_f(double t, double z, double a)
{
return a;
}
double R_k_function(double h, double x_n,
double y_n, double (*f)(double,double))//h步进长度,k1-k4四阶R_K法中间量,x、y_n表示x、y(n)
{
double k1, k2, k3, k4;
k1 = h*f(x_n, y_n);
k2 = h*f(x_n+h/2, y_n+k1/2);
k3 = h*f(x_n+h/2, y_n+k2/2);
k4 = h*f(x_n+h, y_n+k3);
return y_n+(k1+2*k2+2*k3+k4)/6;
}
double R_k_function(double h, double x_n, double y_n,
double a, double (*f)(double,double,double))
{
double k1, k2, k3, k4;
k1 = h*f(x_n, y_n,a);
k2 = h*f(x_n+h/2, y_n+k1/2,a);
k3 = h*f(x_n+h/2, y_n+k2/2,a);
k4 = h*f(x_n+h, y_n+k3,a);
return y_n+(k1+2*k2+2*k3+k4)/6;
}
double R_k_function(double h, double x_n, double y_n,
double a, double b, double (*f)(double,double,double,double))
{
double k1, k2, k3, k4;
k1 = h*f(x_n, y_n,a,b);
k2 = h*f(x_n+h/2, y_n+k1/2,a,b);
k3 = h*f(x_n+h/2, y_n+k2/2,a,b);
k4 = h*f(x_n+h, y_n+k3,a,b);
return y_n+(k1+2*k2+2*k3+k4)/6;
}
*/
void Init(double &v, double &ang, double &x, double &y, double &c_ang)
{
// cout<<"v = 250; ang = 0; x = ; y = 4200; c_ang = 0;"<<endl;
v = 250; ang = 0; x = 0 ; y = 5000; //c_ang = 0;
c_ang = 0.3491;
/*
cout<<"v= ";
cin>>v;
cout<<", ang= ";
cin>>ang;
cout<<", x= ";
cin>>x;
cout<<", y= ";
cin>>y;
cout<<", c_ang= ";
cin>>c_ang;
*/
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -