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

PHP код:
procedure SetTimeATime real; var AOrb TOrbit);
begin
  AOrb
.Classic.ArgLat := GetArgLatATimeAOrb );
  
AOrb.Time := ATime;
  
ClassToXYZAOrb );
end;

procedure SetTimeATime real;  IniOrb TOrbit; var AOrb TOrbit);
begin
  
//  AOrb.Classic.ArgLat := u;
  
AOrb := IniOrb;
  
AOrb.Classic.ArgLat := GetArgLatATimeAOrb );
  
AOrb.Time := ATime;
  
ClassToXYZAOrb );
end;

function  
SetTimeFATime realIniOrb TOrbit ) : TOrbit;
begin
  Result 
:= IniOrb;
  
Result.Classic.ArgLat := GetArgLatATimeResult );
  
Result.Time := ATime;
  
ClassToXYZResult );
end;

function 
SiderialTime0Value TDateTime ) : real;
// Звездное время на 0 час даты Value
var
  
tdreal;
  
integer;
begin
  d 
:= DateTimeToJulianDateValue );      // Юлианская дата
  
:= ( Trunc) -  JD2000 ) / 36525;   // Число дней в Ю-столетиях
  
:= (3.879333e-4 +  360000.7700536 ) * 101.25228375;
  
:= Trunc360 );  // сколько раз по 2пи
  
:= 360;       // Угол приведен к 0..360 град
  
Result := ToRad;    // результат в радианах
end;

function 
SiderialTime Value TDateTime ) : real;
var
  
dTreal;
begin
  dT 
:= TimeOfValue ) * 86400 // число секунд среднесолнечного времени суток
  
:=  SiderialTime0Value ) + We dT// прибл значение без поправки
  
Result := r;
end;

[
color="DarkRed"][b]// мое творение начинается отсюда[/b][/color]
procedure NIP (var Nip:TGeo);
begin
//координаты:55о56'59.16" сш,37о58'00.34" вд
//shirota NIP
Nip.Latitude:=55*ToRad+56*ToRad/60+59.16*ToRad/3600;
//dolgota nip
Nip.Longitude:=37*ToRad+58*ToRad/60+00.34*ToRad/3600;
//radius Nip
Nip.R:=RE;
end;

procedure DecKoord(var Nip:TGeo);
var
Pos:T3DVector;
begin
Nip
.Pos.X:=RE*Cos(Nip.Longitude)*Cos(Nip.Latitude) ;
Nip.Pos.Y:=RE*Cos(Nip.Latitude)*Sin(Nip.Longitude);
Nip.Pos.Z:=RE*Sin(Nip.Latitude);
end;

procedure ugolMesta (var alfa:real);
var
AOrbit:TOrbit;
Nip:TGeo;
pr,ch,zn:real ;
razn,Pos,PosNip,norma:T3dVector;
begin
pr
:=ScalProdAOrbit.Geo.Pos,Nip.Pos) ;
ch:=pr*Nip.Pos.X+pr*Nip.Pos.Y+pr*Nip.Pos.Z;
razn:=differ (AOrbit.Geo.Pos,Nip.Pos);
norma:= unitVect (razn);
zn:=RE*norma.X+RE*norma.Y+RE*norma.Z;
alfa:=ArcSin(ch/zn);
end;


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