Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 25.12.2011, 16:11
mmmm mmmm вне форума
Прохожий
 
Регистрация: 25.12.2011
Сообщения: 3
Репутация: 10
По умолчанию проблемы с курсовой

Пишу программу вычисляющую угол места Космического Аппарата.Долготу и широту определяет,а угол места не находит. Не понимаю своей ошибки.Прошу помочь объяснить , что не так..
alfa - искомый угол места.

1юнит:
PHP код:
unit Unit1512;

interface

uses
  Windows
MessagesSysUtilsVariants,
  
ClassesGraphicsControlsForms,
  
DialogsMenusStdCtrlsExtCtrls,
  
IniFilesComCtrls,
  
Unit2_1512;

type
  TForm1 
= class(TForm)
    
MainMenu1TMainMenu;
    
N1TMenuItem;
    
N2TMenuItem;
    
cmOpenTMenuItem;
    
cmNewTMenuItem;
    
N3TMenuItem;
    
cmSaveTMenuItem;
    
cmSaveAsTMenuItem;
    
N5TMenuItem;
    
cmCloseTMenuItem;
    
OpenDialog1TOpenDialog;
    
Panel1TPanel;
    
Panel2TPanel;
    
Splitter1TSplitter;
    
Panel3TPanel;
    
Memo1TMemo;
    
SaveDialog1TSaveDialog;
    
lePerigeeTLabeledEdit;
    
leEccentrTLabeledEdit;
    
leArgPerigeeTLabeledEdit;
    
leArgLatitudeTLabeledEdit;
    
leAscendNodeTLabeledEdit;
    
leInclinTLabeledEdit;
    
DateTimePicker1TDateTimePicker;
    
Label1TLabel;
    
Button1TButton;
    
Button2TButton;
    
procedure cmOpenClick(SenderTObject);
    
procedure FormCreate(SenderTObject);
    
procedure cmSaveClick(SenderTObject);
    
procedure cmSaveAsClick(SenderTObject);
    
procedure cmCloseClick(SenderTObject);
    
procedure cmNewClick(SenderTObject);
    
procedure Button1Click(SenderTObject);
    
procedure Button2Click(SenderTObject);
  private
    { Private 
declarations }
    
FFileName string;
    
FData TIniFile;
    
FOrb  :  TOrbit;
  
FGeo:TGeo;
(**)    
procedure ReadOrbitData;
  public
    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

uses
   Math
,
  { 
Unit2,} Unit3_1512;
const
   
snOrbit 'ORBIT';


{
$R *.dfm}

procedure TForm1.cmOpenClick(SenderTObject);
begin
  
if OpenDialog1.Execute then
  begin
    Memo1
.Lines.Clear//
    
FFileName := OpenDialog1.FileName;
    
Memo1.Lines.LoadFromFile(FFileName);
    
cmSave.Enabled := true;
    
cmSaveAs.Enabled := true;
  
end;
end;

procedure TForm1.FormCreate(SenderTObject);
begin
  OpenDialog1
.InitialDir := ExtractFilePathApplication.ExeName );
  
Memo1.Clear;
  
SaveDialog1.InitialDir := OpenDialog1.InitialDir;
  
SaveDialog1.Filter :=  OpenDialog1.Filter;
  
SaveDialog1.DefaultExt := OpenDialog1.DefaultExt;
  
cmSave.Enabled := false;
  
cmSaveAs.Enabled := false;
  
FFileName := IncludeTrailingBackslash(OpenDialog1.InitialDir) + 'noname.dat';

end;

procedure TForm1.cmSaveClick(SenderTObject);
begin
  Memo1
.Lines.SaveToFile(FFileName);
end;

procedure TForm1.cmSaveAsClick(SenderTObject);
begin
  
if SaveDialog1.Execute then
  begin
    FFileName 
:= SaveDialog1.FileName;
    
Memo1.Lines.SaveToFile(FFileName);
  
end;
end;

procedure TForm1.cmCloseClick(SenderTObject);
begin
  Close
;
end;

procedure TForm1.cmNewClick(SenderTObject);
begin
  FData 
:= TIniFile.CreateFFileName );
  
lePerigee.Text := FloatToStr(FData.ReadFloat(snOrbit'Perigee'7000));
  
leEccentr.Text := FloatToStr(FData.ReadFloat(snOrbit'Eccentricity'0.01));
  
leInclin.Text := FloatToStr(FData.ReadFloat(snOrbit,'Inclin'57.3));
  
leAscendNode.Text := FloatToStr(FData.ReadFloat(snOrbit,'AscNode'0));
  
leArgPerigee.Text := FloatToStr(FData.ReadFloat(snOrbit,'PeriArg'270));
  
leArgLatitude.Text := FloatToStr(FData.ReadFloat(snOrbit,'ArgLatitude'0));
  
DateTimePicker1.DateTime := Now;
  
FData.Free;
end;

procedure TForm1.Button1Click(SenderTObject);
var
  
alfaprchrazn:real;
 
CurNip:TGeo;
  
CurPos T3DVector;
  
CurOrb TOrbit;
begin
{
  
FOrb.Classic.Rp := StrToFloat(lePerigee.Text);
  
FOrb.Classic.e  := StrToFloat(leEccentr.Text);
  
FOrb.Classic.ArgLat := StrToFloat(leArgLatitude.Text) * ToRad;
  
FOrb.Classic.AscNode := StrToFloat(leAscendNode.Text) * ToRad;
  
FOrb.Classic.Incl := StrToFloat(leInclin.Text) * ToRad ;
  
FOrb.Classic.ArgPerigee := StrToFloat(leArgPerigee.Text) * ToRad;
  
FOrb.Epoch := DateTimePicker1.DateTime;
  
FOrb.Time  := 0;
}
  
ReadOrbitData;
  
ClassToXYZFOrb );
  
NIP (FGeo);

   
ugolMesta (alfa);
   
//ugolMesta (pr);
  // ugolMesta (ch);
   // ugolMesta (razn);

  //  Использование функции форматирования
  
CurNip:=FGeo;
  
CurOrb := FOrb;

  
SetTime1000CurOrb );
//  SetTime( 100, Orb, CurOrb );
//  CurOrb := SetTimeF( 100, FOrb );
  
Memo1.Lines.Add('Время КА=' FloatToStrCurOrb.Time ));
  
Memo1.Lines.Add('X ='+FloatToStr(CurOrb.Cartes.Pos.X) );
  
Memo1.Lines.Add('Y ='+FloatToStr(CurOrb.Cartes.Pos.Y) );
  
Memo1.Lines.Add('Z ='+FloatToStr(CurOrb.Cartes.Pos.Z) );
  
Memo1.Lines.Add('Vx='+FloatToStr(CurOrb.Cartes.Vel.X) );
  
Memo1.Lines.Add('Vy='+FloatToStr(CurOrb.Cartes.Vel.Y) );
  
Memo1.Lines.Add('Vz='+FloatToStr(CurOrb.Cartes.Vel.Z) );
  
Memo1.Lines.Add('L=' +FloatToStr(CurOrb.Geo.Longitude ));
  
Memo1.Lines.Add('F=' +FloatToStr(CurOrb.Geo.Latitude ));
 
Memo1.Lines.Add('R=' +FloatToStr(CurOrb.Geo.) ); 
  
Memo1.Lines.Add ('dolgota nip=' +FloatToStr(CurNip.Longitude) ) ;
  
Memo1.Lines.Add ('shirota Nip=' +FloatToStr(CurNip.Latitude) ) ;
  
Memo1.Lines.Add ('radius=' +FloatToStr(CurNip.R) ) ;
  
Memo1.Lines.Add('X nip=' +FloatToStr(CurNip.Pos.X));
 
// Memo1.Lines.Add('Y nip=' +FloatToStr(CurPos.Ynip ));
 // Memo1.Lines.Add('Z nip=' +FloatToStr(CurPos.Znip ));       }
  
Memo1.Lines.Add('ugol mesta=' +floatToStr(alfa));
 
// Memo1.Lines.Add('pr=' +floatToStr(pr));
 // Memo1.Lines.Add('ch=' +floatToStr(ch));
 // Memo1.Lines.Add('razn=' +floatToStr(razn));


end;

procedure TForm1.Button2Click(SenderTObject);
begin
  ReadOrbitData
;  // Получить FOrb
  
Form3.Show;     //нарисовать картинку
  
Form3.Performwm_DrawChartlongint(@FOrb), );
end;

procedure TForm1.ReadOrbitData;  //читает данные и заносит в структуру орбиты
begin
  FOrb
.Classic.Rp := StrToFloat(lePerigee.Text);
  
FOrb.Classic.e  := StrToFloat(leEccentr.Text);
  
FOrb.Classic.ArgLat := StrToFloat(leArgLatitude.Text) * ToRad;
  
FOrb.Classic.AscNode := StrToFloat(leAscendNode.Text) * ToRad;
  
FOrb.Classic.Incl := StrToFloat(leInclin.Text) * ToRad ;
  
FOrb.Classic.ArgPerigee := StrToFloat(leArgPerigee.Text) * ToRad;
  
FOrb.Epoch := DateTimePicker1.DateTime;
  
FOrb.Time  := 0;
end;

end
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:58.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025