Форум по 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
, Messages, SysUtils, Variants,
  
Classes, Graphics, Controls, Forms,
  
Dialogs, Menus, StdCtrls, ExtCtrls,
  
IniFiles, ComCtrls,
  
Unit2_1512;

type
  TForm1 
= class(TForm)
    
MainMenu1: TMainMenu;
    
N1: TMenuItem;
    
N2: TMenuItem;
    
cmOpen: TMenuItem;
    
cmNew: TMenuItem;
    
N3: TMenuItem;
    
cmSave: TMenuItem;
    
cmSaveAs: TMenuItem;
    
N5: TMenuItem;
    
cmClose: TMenuItem;
    
OpenDialog1: TOpenDialog;
    
Panel1: TPanel;
    
Panel2: TPanel;
    
Splitter1: TSplitter;
    
Panel3: TPanel;
    
Memo1: TMemo;
    
SaveDialog1: TSaveDialog;
    
lePerigee: TLabeledEdit;
    
leEccentr: TLabeledEdit;
    
leArgPerigee: TLabeledEdit;
    
leArgLatitude: TLabeledEdit;
    
leAscendNode: TLabeledEdit;
    
leInclin: TLabeledEdit;
    
DateTimePicker1: TDateTimePicker;
    
Label1: TLabel;
    
Button1: TButton;
    
Button2: TButton;
    
procedure cmOpenClick(Sender: TObject);
    
procedure FormCreate(Sender: TObject);
    
procedure cmSaveClick(Sender: TObject);
    
procedure cmSaveAsClick(Sender: TObject);
    
procedure cmCloseClick(Sender: TObject);
    
procedure cmNewClick(Sender: TObject);
    
procedure Button1Click(Sender: TObject);
    
procedure Button2Click(Sender: TObject);
  private
    { Private 
declarations }
    
FFileName : string;
    
FData : TIniFile;
    
FOrb  :  TOrbit;
  
FGeo:TGeo;
(**)    
procedure ReadOrbitData;
  public
    { Public 
declarations }
  
end;

var
  
Form1: TForm1;

implementation

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


{
$R *.dfm}

procedure TForm1.cmOpenClick(Sender: TObject);
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(Sender: TObject);
begin
  OpenDialog1
.InitialDir := ExtractFilePath( Application.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(Sender: TObject);
begin
  Memo1
.Lines.SaveToFile(FFileName);
end;

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

procedure TForm1.cmCloseClick(Sender: TObject);
begin
  Close
;
end;

procedure TForm1.cmNewClick(Sender: TObject);
begin
  FData 
:= TIniFile.Create( FFileName );
  
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(Sender: TObject);
var
  
alfa, pr, ch, razn: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;
  
ClassToXYZ( FOrb );
  
NIP (FGeo);

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

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

  
SetTime( 1000, CurOrb );
//  SetTime( 100, Orb, CurOrb );
//  CurOrb := SetTimeF( 100, FOrb );
  
Memo1.Lines.Add('Время КА=' + FloatToStr( CurOrb.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.R ) ); 
  
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(Sender: TObject);
begin
  ReadOrbitData
;  // Получить FOrb
  
Form3.Show;     //нарисовать картинку
  
Form3.Perform( wm_DrawChart, longint(@FOrb), 0 );
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, время: 10:43.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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