#include <iostream>
#include<math.h>
#include<stdio.h>
#define PI 3.141592653589793238463
using namespace std;
double CL1(double theta){
double t=theta/2.0/PI*360;
if (t<22) return(0.3+0.0708*t);
else return(1.65-0.0588*(t-22));
}
double CD1(double theta){
double t=theta/2.0/PI*360;
return(0.05+1.736e-3*(t+4)*(t+4));
}
double CL2(double theta){
double t=theta/2.0/PI*360;
if (t<22) return(0.3+0.0708*t-0.3);
else return(1.65-0.0588*(t-22)-0.3);
}
double CD2(double theta){
double t=theta/2.0/PI*360;
return(0.05+1.736e-3*(t+4)*(t+4));
}
void main(void){
const double mass=6.5e-3+0.6e-3+3.0e-3;
const double moment=6.5e-3*0.025*0.025+0.6e-3*0.18*0.18+1.5e-3/3*(0.2*0.2)*2;
const double X1=2.5e-2;
const double X2=18.0e-2;
const double G=9.8;
const double S1=0.04*0.30;
const double S2=0.04*0.08;
const double dT=10e-6;
const double rho_=1.293/2 ;
double vx=3.0,vz=0.0;
double x=0.0,z=2.0;
double theta_a=0.0/360*2*PI;
double omega_a=0.0;
double time;
for(time=0; time <= 30; time+=dT){
double v2=vx*vx+vz*vz;
double theta_v=atan2(vz,vx);
double theta_in=theta_a-theta_v;
double theta_1=atan2(CL1(theta_in),CD1(theta_in));
double theta_1_=theta_1-theta_v;
double theta_2=atan2(CL2(theta_in),CD2(theta_in));
double theta_2_=theta_2-theta_v;
double ax=-rho_*v2*S1*(CL1(theta_in)+CD1(theta_in))*cos(theta_1_)/mass
-rho_*v2*S2*(CL2(theta_in)+CD1(theta_in))*cos(theta_2_)/mass;
double az=+rho_*v2*S1*(CL1(theta_in)+CD1(theta_in))*sin(theta_1_)/mass
+rho_*v2*S2*(CL2(theta_in)+CD1(theta_in))*sin(theta_2_)/mass
-G;
double temp;
if(omega_a>=0) temp=1;
else temp=-1;
double alpha_a=+X1*rho_*v2*S1*(CL1(theta_in)+CD1(theta_in))*sin(theta_1_+theta_a)/moment
-X2*rho_*v2*S2*(CL2(theta_in)+CD2(theta_in))*sin(theta_2_+theta_a)/moment
-temp* rho_*((omega_a*X1)*(omega_a*X1)*S1+(omega_a*X2)*(omega_a*X2)*S2)/moment;
x+=vx*dT+0.5*ax*dT*dT;
vx+=ax*dT;
z+=vz*dT+0.5*az*dT*dT;
vz+=az*dT;
theta_a+=omega_a*dT+0.5*alpha_a*dT*dT;
omega_a+=alpha_a*dT;
if(z<0) break;
if( int(time/dT/1000)*1000==int(time/dT)) cout << x<<" "<<z<< " "<<cos(theta_a)<<" "<<sin(theta_a)<<"\n";
}
}