亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? astroops.cpp

?? This is a pgm can be used for astronomy
?? CPP
字號:
/*****************************************************************************\
 * AstroOps.cpp
 *
 * AstroOps is a 'catch-all' class that performs misc. handy calculations
 *
 * author: mark huss (mark@mhuss.com)
 * Based on Bill Gray's open-source code at projectpluto.com
 *
\*****************************************************************************/

#include "AstroOps.h"

#include <math.h>

// In-class constants cannot be initialized in the class declaration. Sigh.
//
const double Astro::PI = PI_DEF;
const double Astro::TWO_PI = PI_DEF + PI_DEF;
const double Astro::PI_OVER_TWO = PI_DEF / 2.;
const double Astro::TWO_OVER_PI = 2. / PI_DEF;

const double Astro::DEG_PER_CIRCLE = 360.;
const double Astro::MINUTES_PER_DEGREE = 60.;
const double Astro::SECONDS_PER_DEGREE = 3600.;

const double Astro::TO_RADS = PI_DEF / 180.;
const double Astro::TO_CENTURIES = 36525.;

const double Astro::J2000 = 2451545.0;

const double Astro::HOURS_PER_DAY = 24.;
const int    Astro::IHOURS_PER_DAY = 24;

/*----------------------------------------------------------------------------
 * The obliquity formula (and all the magic numbers below) come from Meeus,
 * Astro Algorithms.
 *
 * Input t is time in julian centuries from 2000.
 * Valid range is the years -8000 to +12000 (t = -100 to 100).
 *
 * return value is mean obliquity (epsilon sub 0) in radians.
 */

double AstroOps::meanObliquity( double t )
{
   double u, u0;
   static double t0 = 30000.;
   static double rval = 0.;
   static const double rvalStart = 23. * Astro::SECONDS_PER_DEGREE +
                             26. * Astro::MINUTES_PER_DEGREE +
                             21.448;
   static const int OBLIQ_COEFFS = 10;
   static const double coeffs[ OBLIQ_COEFFS ] = {
         -468093.,  -155.,  199925.,  -5138.,  -24967.,
         -3905.,    712.,   2787.,    579.,    245.
   };

   if( t0 != t ) {

      t0 = t;
      u = u0 = t / 100.;     // u is in julian 10000's of years
      rval = rvalStart;

      for( int i=0; i<OBLIQ_COEFFS; i++ )
      {
          rval += u * coeffs[i] / 100.;
          u *= u0;
      }
      // convert from seconds to radians
      rval = Astro::toRadians( rval / Astro::SECONDS_PER_DEGREE );
   }
   return rval;
}

/*----------------------------------------------------------------------------
 * The nutation formula (and all the magic numbers below) come from
 * p 132-5, Meeus,  Astro Algorithms
 *
 * input is time in julian centuries from 2000.
 *
 * *pDPhi is nutation (delta phi) in arcseconds
 * *pDEpsilon is nutation (delta epsilon) in arcseconds
 *
 * Either pointer can be NULL,  in which case that value is
 * not computed.  (we added this because sometimes,  you want
 * only pDPhi or pDEpsilon;  in such cases,  computing _both_
 * is a waste of perfectly good CPU time)
 */

void AstroOps::nutation( double t, double* pDPhi, double* pDEpsilon )
{
  static const double linearPart[5] = {
      445267.111480, 35999.050340, 477198.867398,
      483202.017538, -1934.136261 };

  static const double coefficients[5][3] = {
      { 29785036., -19142.,  189474. },
      { 35752772., - 1603., -300000. },
      { 13496298.,  86972., 56250. },
      {  9327191., -36825., 327270. },
      { 12504452.,  20708., 450000. }
  };

  static const int N_NUTATION_COEFFS = 62;

  static const int args[N_NUTATION_COEFFS][3] = {
      {  324,-13187,5736 },
      { 1574, -2274, 977 },
      { 1564,  2062,-895 },
      { 1687,  1426,  54 },
      { 1587,   712,  -7 },
      {  449,  -517, 224 },
      { 1573,  -386, 200 },
      { 1599,  -301, 129 },
      {  199,   217, -95 },
      {  337,  -158,   0 },
      {  323,   129, -70 },
      { 1549,   123, -53 },
      { 2812,    63,   0 },
      { 1588,    63, -33 },
      { 2799,   -59,  26 },
      { 1538,   -58,  32 },
      { 1598,   -51,  27 },
      {  362,    48,   0 },
      { 1523,    46, -24 },
      { 2824,   -38,  16 },
      { 1624,   -31,  13 },
      { 1612,    29,   0 },
      {  349,    29, -12 },
      { 1572,    26,   0 },
      {  322,   -22,   0 },
      { 1548,    21, -10 },
      { 1812,    17,   0 },
      { 2788,    16,  -8 },
      {  574,   -16,   7 },
      { 1688,   -15,   9 },
      {  338,   -13,   7 },
      { 1438,   -12,   6 },
      { 1602,    11,   0 },
      { 2798,   -10,   5 },
      { 2849,    -8,   3 },
      { 1699,     7,  -3 },
      {  462,    -7,   0 },
      { 1449,    -7,   3 },
      { 2823,    -7,   3 },
      { 2837,     6,   0 },
      {  374,     6,  -3 },
      {  348,     6,  -3 },
      { 2763,    -6,   3 },
      { 2813,    -6,   3 },
      { 1462,     5,   0 },
      {  198,    -5,   3 },
      {  313,    -5,   3 },
      { 1623,    -5,   3 },
      { 1524,    -3,   0 },
      {  363,     4,   0 },
      {  448,     4,   0 },
      { 1474,    -3,   0 },
      { 2674,    -3,   0 },
      { 1649,    -3,   0 },
      { 2699,    -3,   0 },
      {  837,    -3,   0 },
      {  962,    -4,   0 },
      {  437,    -4,   0 },
      { 1577,     4,   0 },
      { 2187,    -4,   0 },
      { 1712,    -3,   0 },
      { 1597,     3,   0 }
  };

  static const int timeDependent[16 + 9] = {
      -16, -2, 2, -34, 1, 12, -4, 0, -5, 0, 1, 0, 0, 1, 0, -1,
      -31, -5, 5, -1,  0, -6, 0, -1, 3 };

  double terms[5];

  double t2 = t * t;
  double t3 = t2 * t;

  for( int i=0; i<5; i++ ) {
    terms[i] = linearPart[i] * t + coefficients[i][0] / 100000.;
    terms[i] += t2 * coefficients[i][1] * 1.e-7;
    terms[i] += t3 / coefficients[i][2];
    terms[i] *= Astro::TO_RADS;
  }

   // The largest term in pDPhi won't fit into a short int.
   // Everything else does,  luckily.
   //
  if( pDPhi )
    *pDPhi = (-171996. - 174.2 * t) * sin( terms[4] );

  if( pDEpsilon )
    *pDEpsilon = (92025. + 8.9 * t) * cos( terms[4] );

  for( int i=0; i<N_NUTATION_COEFFS; i++ ) {
    double totalArg = 0.;
    int mult = args[i][0];

    for( int j=4; j>=0; j--) {
      if( mult % 5 != 2)
        totalArg += (double)( mult % 5 - 2) * terms[j];
      mult /= 5;
    }

    double coeff = (double)(args[i][1]);
    if( i < 16 && 0 != timeDependent[i] )
      coeff += (double)(timeDependent[i]) * t / 10.;
    else if( 26 == i || 28 == i )
      coeff += (double)(27 - i) * t / 10.;

    if( pDPhi )
      *pDPhi += coeff * sin(totalArg);

    if( 0 != args[i][2] ) {
      coeff = (double)(args[i][2]);

      if( i < 9 && 0 != timeDependent[i + 16] )
        coeff += (double)(timeDependent[i + 16]) * t / 10.;

      if( pDEpsilon)
        *pDEpsilon += coeff * cos( totalArg );
    }
  }
  if( pDPhi )
    *pDPhi *= .0001;

  if( pDEpsilon )
    *pDEpsilon *= .0001;
}

/*----------------------------------------------------------------------------
 *  See p 84,  in Meeus:
 * The following returns apparent Greenwich sidereal time for the given jd
 */
double AstroOps::greenwichSiderealTime( double jd )
{
  jd -= Astro::J2000;      /* set relative to 2000.0 */
  double jdm = jd / Astro::TO_CENTURIES;  /* convert jd to julian centuries */
  double intPart = floor( jd );
  jd -= intPart;
  double rval = 280.46061837 +
                360.98564736629 * jd +
                .98564736629 * intPart +
                jdm * jdm * ( 3.87933e-4 - jdm / 38710000. );

  return Astro::toRadians( rval );
}

//----------------------------------------------------------------------------
// reduce an angle in degrees to (0 <= d < 360)
//
double AstroOps::normalizeDegrees(double d)
{
  d = fmod( d, Astro::DEG_PER_CIRCLE);
  if( d < 0.)
    d += Astro::DEG_PER_CIRCLE;

  return d;
}

//----------------------------------------------------------------------------
// reduce an angle in radians to (0 <= r < 2PI)
//
double AstroOps::normalizeRadians(double r)
{
  r = fmod( r, Astro::TWO_PI );
  if( r < 0. )
    r += Astro::TWO_PI;

  return r;
}

//----------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品美女在线观看| 欧美肥妇bbw| 国产福利电影一区二区三区| 日韩和欧美一区二区三区| 一区二区三区免费观看| 一区二区三区自拍| 亚洲精品国产无套在线观| 国产精品你懂的在线欣赏| 国产精品天天看| 亚洲女子a中天字幕| 亚洲色图视频网| 亚洲午夜影视影院在线观看| 五月天视频一区| 视频精品一区二区| 久久99精品久久久久久国产越南| 狠狠久久亚洲欧美| av激情综合网| 欧美在线观看一区| 日韩视频中午一区| 久久精品人人爽人人爽| 亚洲精品成人天堂一二三| 天天综合天天做天天综合| 久久精品国产精品青草| 成人性生交大片免费看视频在线| 国产成人免费在线观看| 91免费精品国自产拍在线不卡| 欧美日韩一区二区三区视频| 精品免费99久久| 亚洲色图20p| 久久66热re国产| 99久久伊人网影院| 日韩视频免费直播| 亚洲啪啪综合av一区二区三区| 日韩国产精品大片| 成人ar影院免费观看视频| 欧美另类z0zxhd电影| 欧美激情综合五月色丁香小说| 亚洲综合丝袜美腿| 国产一区不卡在线| 欧美日韩五月天| 国产精品久久久久久久久久免费看| 亚洲午夜电影在线| 成人视屏免费看| 欧美一卡二卡在线观看| 亚洲欧美一区二区不卡| 精品在线视频一区| 91麻豆精品国产91久久久久久久久| 国产精品网站在线播放| 老司机精品视频一区二区三区| 95精品视频在线| 国产清纯在线一区二区www| 黑人巨大精品欧美一区| 欧美日韩精品一区二区三区四区| 国产精品国产自产拍高清av| 久久不见久久见免费视频1| 在线观看中文字幕不卡| 国产精品毛片久久久久久| 国产一区二区三区四| 91精品国产综合久久精品图片| 亚洲精品一二三四区| 97久久精品人人澡人人爽| 久久亚洲精精品中文字幕早川悠里| 亚洲成人免费看| 欧美三级电影网| 一区二区三区av电影| 色综合久久天天综合网| 国产精品久久福利| 波多野结衣视频一区| 国产精品无遮挡| av欧美精品.com| 国产精品成人网| 91丨porny丨最新| 亚洲免费资源在线播放| 91国产精品成人| 一个色妞综合视频在线观看| 91香蕉国产在线观看软件| 亚洲欧洲av在线| 99国产精品久久久久久久久久 | 亚洲成人在线免费| 欧美一a一片一级一片| 亚洲精品高清在线| 精品视频在线免费看| 亚洲动漫第一页| 亚洲男人电影天堂| 色婷婷av一区| 首页欧美精品中文字幕| 日韩欧美三级在线| 国产真实乱子伦精品视频| 国产精品视频一二三区 | 日本韩国精品在线| 亚洲九九爱视频| 欧美日韩精品福利| 久久国产精品区| 国产精品私房写真福利视频| 91在线国产观看| 日韩黄色在线观看| 久久久久高清精品| 色欲综合视频天天天| 日av在线不卡| 中文字幕电影一区| 欧美日韩精品一区二区三区 | 成人午夜精品一区二区三区| 亚洲女同一区二区| 欧美一区二区三区视频在线 | 偷拍一区二区三区| 久久亚洲二区三区| 欧洲一区二区三区在线| 久久99久久99| 亚洲精品国产高清久久伦理二区 | 国产成人在线网站| 亚洲最新视频在线播放| 久久一区二区视频| 欧美自拍偷拍一区| 大胆亚洲人体视频| 老司机精品视频线观看86 | 亚洲欧美日韩电影| 这里只有精品电影| av一区二区三区| 国产一区在线观看视频| 亚洲一区二区三区国产| 国产精品天美传媒沈樵| 日韩一区二区三区精品视频| 色诱视频网站一区| 成人三级伦理片| 久久99九九99精品| 亚洲第一av色| 自拍av一区二区三区| 国产无人区一区二区三区| 91精品国产色综合久久不卡蜜臀| 99精品视频一区| 国产精品一区在线观看乱码| 午夜视频在线观看一区二区| 亚洲三级在线免费| 国产精品欧美久久久久无广告| 欧美成人高清电影在线| 欧美精品日韩综合在线| 在线观看一区二区精品视频| av电影在线观看一区| 国产成人av在线影院| 秋霞电影网一区二区| 婷婷中文字幕一区三区| 亚洲资源中文字幕| 一区二区三区在线免费| 中文字幕制服丝袜一区二区三区 | 欧美在线观看一二区| 91免费版在线| 99国产精品视频免费观看| 成人精品在线视频观看| 国产成人在线看| 国产精品一区二区三区99| 精品午夜一区二区三区在线观看| 日韩av一级电影| 日日欢夜夜爽一区| 久久爱www久久做| 国内精品在线播放| 国产乱码精品一区二区三区忘忧草 | 九九国产精品视频| 麻豆精品在线观看| 国产精一品亚洲二区在线视频| 捆绑调教美女网站视频一区| 九九九久久久精品| 国产成人h网站| 色综合天天综合狠狠| 91福利区一区二区三区| 欧美午夜寂寞影院| 欧美一区午夜精品| 久久只精品国产| 国产精品护士白丝一区av| 亚洲最新在线观看| 美女视频一区在线观看| 国产盗摄女厕一区二区三区| 成人精品小蝌蚪| 色播五月激情综合网| 91精品国产色综合久久| 久久精品一区蜜桃臀影院| ●精品国产综合乱码久久久久| 亚洲综合免费观看高清完整版在线| 亚洲成人手机在线| 精品一区二区三区在线播放 | 欧美一区二区三区免费视频 | 久久中文娱乐网| 亚洲人被黑人高潮完整版| 成人一区在线看| 色婷婷亚洲精品| 91精品国产品国语在线不卡| 久久久久久久久99精品| 亚洲精品视频在线| 美女mm1313爽爽久久久蜜臀| 国产成人精品aa毛片| 欧美亚洲综合色| 久久久久久久综合日本| 亚洲国产精品人人做人人爽| 国产成人日日夜夜| 在线综合视频播放| 亚洲区小说区图片区qvod| 韩国av一区二区三区在线观看| 99re成人精品视频| 久久久久88色偷偷免费| 五月婷婷综合激情| 99国产精品久久久久久久久久|