Читать реферат по авиации и космонавтике: "Расчет посадки космического аппарата "Луна-Глоб" на Луну" Страница 11

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

FILE_ORBIT "D:\\image\\Катя\\Documents\\Visual Studio 2013\\Projects\\vidimost_s_reliefom\\ОРБИТА.txt"

#define FILE_MOON "D:\\image\\Катя\\Desktop\\ДИПЛОМ\\Moon\\moon.txt"

#define FILE_ANGLES "D:\\image\\Катя\\Documents\\Visual Studio 2013\\Projects\\vidimost_s_reliefom\\углы.csv"

//"D:\\image\\Катя\\Documents\\Visual Studio 2013\\Projects\\vidimost_s_reliefom\\видимость.txt"

#define MoonRadius 1738.57

#define AngleStep 0.5e0main()

{int i, j, k;_point*KA;NKA;iO; // index of Orbit point_height*MoonHeight;*angle_KA;*angle_Moon;

//Объявление переменныхpoint_S[3] = { 65, 87, MoonRadius };// точка на поверхности Луны P'(lat,lon,R_Moon)point_J[3];MoonCenterSG[3];MoonCenterJ[3];vecOP[3],vecOK[3],vecN[3],vecOS[3];pointS_J[3],pointS_S[3];MatrixRotation[3][3];AngleNStep;a;_read(FILE_ORBIT, &KA, &NKA);_height_read(FILE_MOON, 60, 90, 0, 360, -15520, 15520, &MoonHeight);[0] = 0.e0;[1] = 0.e0;[2] = 0.e0;_KA = (double*)calloc(NKA, sizeof(double));_Moon = (double*)calloc(NKA, sizeof(double));(iO = 0; iO < nka; io++){_s[2] = moonradius + moon_height_get(moonheight, point_s[0], point_s[1]);_to_j(point_s, point_j, ka[io].time);_to_j(mooncentersg, mooncenterj, ka[io].time);(k = 0; k < 3; k++) vecop[k] = point_j[k] - mooncenterj[k];(k = 0; k < 3; k++) vecok[k] = ka[io].coords[k] - mooncenterj[k];(fabs(angle(vecop, vecok)) < 1.e-10){

//TODO видно, угол 90_KA[iO] = 90.e0;_Moon[iO] = 0.e0;;}_KA[iO] = elevation_angle(vecOP, vecOK);

(vecOP, vecOK, vecN);_norm(vecN);= (int)(angle(vecOP, vecOK) / AngleStep + 1);(i = 1; i angle_Moon[i]){(TimeStart < 0){= time;= time;

}else{= Time;}

}else{(TimeStart>0){(TimeFinish - TimeStart > TimeMax)= TimeFinish - TimeStart;

}else{//do nothing}

}}(TimeStart > 0){(TimeFinish - TimeStart > TimeMax)= TimeFinish - TimeStart;}("Time max = %g days = %g sec\n", TimeMax,TimeMax*24*60*60);

getch();0;}

Файл с вспомогательными программами «dop.cpp».

#define _CRT_SECURE_NO_DEPRECATE

#include

#include

#include

#include

#include

#include

#include

#include

#include "dop.h"struct{coord[3];JDtime;

}vector;struct{teta, fi, r;

//Получение Юлианской даты по Дате и Времени

double DateTimeToJulDate(int Year, int Month, int Day, int Hour, int Min, double Sec){ long MjdMidnight;b;(Month lat_min = lat_min;>lat_max = lat_max;>lon_min = lon_min;>lon_max = lon_max;>lat_N = abs(lat_N);>lon_N = abs(lon_N);>height = (double**)calloc(Height->lat_N , sizeof(double*));(i = 0; i < height->lat_N;i++)>height[i] = (double*)calloc(Height->lon_N, sizeof(double));((fd = fopen(file, "rt")) == 0){("Can't read moon file '%s'\n", file);0;}(i = 0; i < height->lat_N; i++){(j = 0; j < height->lon_N; j++){= (lat_N < 0) ? (height->lat_N - 1 - i) : i;= (lon_N < 0) ? (height->lon_N - 1 - j) : j;(fd, "%lf", &h);>height[i2][j2] = h;}}

*_Height = Height;("Readed file moon. Read %dx%d from lat[%lf, %lf] x lon[%lf, %lf].\n", Height->lat_N,Height->lon_N,>lat_min,Height->lat_max,Height->lon_min,Height->lon_max);(fd);0;}moon_height_get(moon_height*Height, double lat, double lon){iLat, iLon;= (int)(Height->lat_N * (lat - Height->lat_min) / (Height->lat_max - Height->lat_min));(iLat < 0) ilat = 0;(ilat >= Height->lat_N) iLat = Height->lat_N - 1;= (int)(Height->lon_N * (lon - Height->lon_min) / (Height->lon_max - Height->lon_min));(iLon < 0) ilon = 0;(ilon >= Height->lon_N) iLon = Height->lon_N - 1;Height->height[iLat][iLon];}

Файл «orbita.cpp».

#define _CRT_SECURE_NO_DEPRECATE

#include

#include

#include

#include "orbita.h"

// Считать орбиту спутникаorbit_read(char*file, orbita_point**_KA,int*_NKA){ * o;//o-файл, откуда читаем

orbita_point*KA;NKA;NKA_allocated;sch = 0, Nstr = 0;// sch-счетчик для case; Nstr-номер строкиstring[301], *pch;((o = fopen(file, "rt")) == 0){("Can't read orbit file '%s'\n", file);0;}= 0;= 0;_allocated = 0;

//считываем координаты KA в СК J2000 и время из "ОРБИТА.txt"

// пропускаем заголовки

fgets(string, 300, o);

while (!feof(o)){(string, 300, o);(string != NULL){(NKA + 1 >= NKA_allocated){(NKA_allocated == 0){_allocated = 16;= (orbita_point*)calloc(NKA_allocated, sizeof(orbita_point));}{(NKA + 1 >= NKA_allocated) NKA_allocated = NKA_allocated * 2;= (orbita_point*)realloc(KA, NKA_allocated * sizeof(orbita_point));}}= strtok(string, " ");[NKA].coords[0] = atof(pch); // X(pch != NULL){(sch5) && (sch < 9)) pch = strtok(null, " .");(sch >= 9) pch = strtok(NULL, ":");(sch) {0: KA[NKA].coords[1] = atof(pch); break; // Y1: KA[NKA].coords[2] = atof(pch); break; // Z6: KA[NKA].time[2] = atoi(pch); break; // Day7: KA[NKA].time[1] = atoi(pch); break; // Month8: KA[NKA].time[0] = atoi(pch); break; // Year9: KA[NKA].time[3] = atoi(pch); break; // Hour10: KA[NKA].time[4] = atoi(pch); break; // Min11: KA[NKA].time[5] = atoi(pch); break; // Sec

}++;}= 0;++;++;}}("Readed file orbit. Count of points %d.\n", NKA);

*_KA = KA;

*_NKA = NKA;0;}


Похожие работы

 
Тема: Расчет стержневых систем и бруса на растяжение, Расчет нагруженной балки, Экзаменационные вопросы по...
Предмет/Тип: Сопромат (Вопросы)
 
Тема: Расчет увеличения осадки от крена, проседания на мелководье и расчет безопасной ширины фарватера
Предмет/Тип: Транспорт, грузоперевозки (Контрольная работа)
 
Тема: Расчет стержневых систем и бруса на растяжение, Расчет нагруженной балки, Экзаменационные вопросы по прикладной механике
Предмет/Тип: Другое (Реферат)
 
Тема: Расчет стержневых систем и бруса на растяжение, Расчет нагруженной балки, Экзаменационные вопросы по прикладной механике
Предмет/Тип: Технология машиностроения (Реферат)
 
Тема: Курс, группа 3,1 фаткуллин руслан айратович работа на тему: расчет и выбор посадок гладких цилиндрических и типовых соединений, расчет размерной цепи
Предмет/Тип: Другое (Реферат)

Интересная статья: Основы написания курсовой работы