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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gfc.h

?? 計(jì)算地球或橢圓體中兩點(diǎn)距離的程序
?? H
字號(hào):
// Definitions
// Ellipsoid
//  A flattened sphere. Take a basketball (a sphere), let some air out of it then
//  stand on it. You now have an ellipsoid. The basketball is flat on the bottom
//  and the top but still round in the middle.
// Equator
//  0 degrees Latitude
// Flattening
//  This is a ratio between polar radius and equatorial radius. Other names for
//  flattening are elliptocyte or oblateness.
// Latitude
//  The lines that run around the Earth like belts. They measure up/down angles.
// Longituide
//  The lines that slice the Earth like an orange from top to bottom. They
//  measure left/right angles.
// Meridian
//   One of the imaginary circles on the earth's surface passing through the north
//   and south poles 
// Pi
//  The most famous constant. It is a ratio.
//  It is the Circumference of a circle divided by
//  the diameter of the circle. It is 3.14 (or roughly 22 divivded by 7).
// Prime Meridian 
//  0 degrees Longitude
// Radian
//  The unit of measurement of a circle. It is a ratio.
//  It's kind of hard to explain what
//  a radian is so let me give you an example. Take the basketball and cut
//  a length of string equal to the radius (i.e. half the width) of the
//  ball. Now, lay this string on top of the ball. See how it forms an arc?
//  Now, draw a line from each end of the string to the center of the ball.
//  The angle of these two lines at the center of the ball is roughly
//  57.2958 degrees. This is true no matter what the size of the ball is.
//  Why? Because as the size of the ball increases, so does the radius.
//  So, a radian can be considered as a relationship between the radius of
//  a sphere (ball) and the circumference of the sphere. Now, there's something
//  interesting about the number of degrees in a radian (52.2958). It is
//  equal to 180 divided by Pi. Yup! Go Figure! OK. Now we're getting somewhere.
//  To find the length of the arc when all you have is the number of radians
//  in the angle at the center of the sphere, you multiply the radius times
//  the number of radians. It's that simple (on a perfect sphere anyway).

// Geodetic Datum - description of the shape of the earth

// Reference Ellipsoid - A flattened sphere. Let some air out of
// a basketball, then stand on it. The ball is now an ellipsoid.
// Your feet are standing on the North Pole and the floor is the
// South Pole.

// Ellipsoids are described by their polar and equatorial radii.
// Polar radius is also known as semi-minor axis.
// Equatorial radius is also know as semi-major axis.
// All other items of interest about the ellipsoid are derived
// from these two data.
// Flattening is ( Equatorial radius - Polar radius ) / Equatorial radius
// There's another thing called First Eccentricity Squared, this is computed
// by ( 2 * Flattening ) - ( Flattening squared ).

// Coordinates - a means of expressing a point in space
//
// Cartesian coordinates are X, Y, and Z coordinates. These are always
// expressed in distances from 0, 0, 0 (i,e, the center of the earth).
//
// Polar coordinates are theta (often seen as a letter O with a line
// through its middle running left-to-right), phi (often seen as a
// letter O with a line through its middle running top-to-bottom), and
// r (a distance).
// These are two angles and a distance. The angles are measured from
// a common origin (the center of the earth). Theta is the plane that
// runs through the equator, phi runs through the poles. R is the 
// distance along the line running along the phi angle. For simplicity
// sake, we will refer to theta as Equatorial angle, phi as the
// polar angle, and r as Polar Distance.
//
// Converting coordinates
//
// You can convert from polar to cartesian cordinates using the following
// formula:
// X = Polar distance * cosine of Polar angle * cosine of Equatorial angle
// Y = Polar distance * cosine of Polar angle * sine of Equatorial angle
// Z = Polar distance * sine of Polar angle

// Applying this to the real world
//
// Cartesian coordinates ar commonly refered to an ECEF X,Y,Z coordinates.
// This means Earth Centered, Earth Fixed. The 0,0,0 coordinate is the
// center of the earth. The X axis runs towards the Prime Meridian.
// The Y axis runs towards the equator and the Z axis runs toward
// the poles. Positive Z numbers go towards the North pole while
// negative numbers go towards the South Pole. Positive 

// Computing Distance
//
// If you have two cartesian coordinates, you can compute a line
// of sight (as the bullet flies, aiming a laser, pointing in a straight line)
// by this formula (some guy named Pythagoras figured this out):
// SQRT( ( X1 - X2 ) ^ 2 + ( Y1 - Y2 ) ^ 2 + ( Z1 - Z2 ) ^ 2 )
//
// or in pseudo code:
//
// cartesian_coordinate first_location;
// cartesian_coordinate second_location;
//
// double temp_x;
// double temp_y;
// double temp_z;
//
// temp_x = first_location.X - second_location.X;
// temp_y = first_location.Y - second_location.Y;
// temp_z = first_location.Z - second_location.Z;
//
// temp_x = temp_x * temp_x; // square them
// temp_y = temp_y * temp_y;
// temp_z = temp_z * temp_z;
//
// double temp_double;
//
// temp_double = temp_x + temp_y + temp_z;
//
// double distance;
//
// distance = sqrt( temp_double );
//
// While this will give you distance, it will not give you direction.

#if ! defined( MAKING_GFC_LIB )
#if defined( _DEBUG )
#pragma comment( lib, "/cpp/gfc/lib/debug/gfclib.lib" )
#else
#pragma comment( lib, "/cpp/gfc/lib/release/gfclib.lib" )
#endif
#endif

#include <math.h>

class CMath
{
   // This class encapsulates all of the math functions. It is here to allow you
   // to replace the C Runtime functions with your home-grown (and maybe better
   // implementation) routines

   public:

      static inline double AbsoluteValue( const double& value );
      static inline double ArcCosine( const double& value );
      static inline double ArcSine( const double& value );
      static inline double ArcTangent( const double& value );
      static inline double ArcTangentOfYOverX( const double& y, const double& x );
      static inline double Ceiling( const double& value );
      static inline double ConvertDegreesToRadians( const double& degrees );
      static inline double ConvertRadiansToDegrees( const double& radians );
      static inline void   ConvertDecimalDegreesToDegreesMinutesSeconds( double decimal_degrees, double& degrees, double& minutes, double& seconds );
      // West is negative, East is positive, North is positive, south is negative
      static inline double ConvertDegreesMinutesSecondsCoordinateToDecimalDegrees( double degrees, double minutes, double seconds );
      static inline double Cosine( const double& value );
      static inline double HyperbolicCosine( const double& value );
      static inline double Pi( void );
      static inline double Sine( const double& value );
      static inline double SquareRoot( const double& value );
};

#include "CMath.inl" // Implementations of the inline functions

class CEarthCoordinate
{
   // This is a Cartesian coordinate (Earth Centered, Earth Fixed)

   protected:

      double m_X_CoordinateInMeters; // Positive points to intersection of the Prime Meridian and the equator
      double m_Y_CoordinateInMeters; // Positive points to the intersection of 90 degrees east of Prime Meridian and the equator
      double m_Z_CoordinateInMeters; // Positive points to the North Pole, Negative towards the South Pole

   public:

      CEarthCoordinate();
      CEarthCoordinate( const CEarthCoordinate& source );
     ~CEarthCoordinate();

      void   Copy( const CEarthCoordinate& source );
      void   Get( double& x_coordinate, double& y_coordinate, double& z_coordinate ) const;
      double GetXCoordinateInMeters( void ) const;
      double GetYCoordinateInMeters( void ) const;
      double GetZCoordinateInMeters( void ) const;
      void   Set( double x_coordinate, double y_coordinate, double z_coordinate );
      void   SetXCoordinateInMeters( double x_coordinate );
      void   SetYCoordinateInMeters( double y_coordinate );
      void   SetZCoordinateInMeters( double z_coordinate );

      CEarthCoordinate& operator = ( const CEarthCoordinate& source );
};

class CPolarCoordinate
{
   protected:

      double m_UpDownAngleInDegrees; // Polar Angle, Phi
      double m_LeftRightAngleInDegrees; // Equatorial Angle, Theta
      double m_DistanceFromSurfaceInMeters;

   public:

      CPolarCoordinate();
      CPolarCoordinate( const CPolarCoordinate& source );
     ~CPolarCoordinate();

      void   Copy( const CPolarCoordinate& source );
      void   Get( double& up_down_angle, double& left_right_angle, double& distance_from_surface ) const;
      double GetUpDownAngleInDegrees( void ) const;
      double GetLeftRightAngleInDegrees( void ) const;
      double GetDistanceFromSurfaceInMeters( void ) const;
      void   Set( double up_down_angle, double left_right_angle, double distance_from_surface );
      void   SetUpDownAngleInDegrees( double up_down_angle );
      void   SetLeftRightAngleInDegrees( double left_right_angle );
      void   SetDistanceFromSurfaceInMeters( double distance_from_surface );

      CPolarCoordinate& operator = ( const CPolarCoordinate& source );
};

class CEarth
{
   protected:

      // These are the magic numbers. They are the "real" data. They are facts,
      // measurements. Everything else about an ellipse is derived (or computed from)
      // these two data items.

      double m_PolarRadiusInMeters;
      double m_EquatorialRadiusInMeters;

      // Here be the things that can be derived from our hard data.
      // We compute these values using the two pieces of data that we
      // know about the ellipse.

      double m_Flattening;
      double m_EccentricitySquared;

      // Here's stuff specific to the C++ class

      int m_EllipsoidID;

      void m_ComputeFlattening( void );
      void m_ComputeEccentricitySquared( void );
      void m_Initialize( void );
      
   public:

      enum _EllipsoidType
      {
         Unknown,
         Perfect_Sphere,
         Airy,
         Austrailian_National,
         Bessell_1841,
         Bessel_1841_Nambia,
         Clarke_1866,
         Clarke_1880,
         Everest,
         Fischer_1960_Mercury,
         Fischer_1968,
         GRS_1967,
         GRS_1980,
         Helmert_1906,
         Hough,
         International,
         Krassovsky,
         Modified_Airy,
         Modified_Everest,
         Modified_Fischer_1960,
         South_American_1969,
         Topex_Poseidon_Pathfinder_ITRF,
         WGS_60,
         WGS_66,
         WGS_72,
         WGS_84,
         Custom
      }
      ELLIPSOIDS;

      enum _DatumTypes
      {
         NAD_27 = Clarke_1866,
         Tokyo  = Bessell_1841,
      }
      DATUMS;

      CEarth( int ellipsoid = WGS_84 );
     ~CEarth();

      virtual void   AddLineOfSightDistanceAndDirectionToCoordinate( const CPolarCoordinate& point_1, double distance, double direction, CPolarCoordinate& point_2, double height_above_surface_of_point_2 = 0.0 );
      virtual void   AddSurfaceDistanceAndDirectionToCoordinate( const CEarthCoordinate& point_1, double distance, double direction, CEarthCoordinate& point_2 );
      virtual void   AddSurfaceDistanceAndDirectionToCoordinate( const CEarthCoordinate& point_1, double distance, double direction, CPolarCoordinate& point_2 );
      virtual void   AddSurfaceDistanceAndDirectionToCoordinate( const CPolarCoordinate& point_1, double distance, double direction, CEarthCoordinate& point_2 );
      virtual void   AddSurfaceDistanceAndDirectionToCoordinate( const CPolarCoordinate& point_1, double distance, double direction, CPolarCoordinate& point_2 );
      virtual void   Convert( const CEarthCoordinate& cartesian_coordinate, CPolarCoordinate& polar_coordinate ) const;
      virtual void   Convert( const CPolarCoordinate& polar_coordinate, CEarthCoordinate& cartesian_coordinate ) const;
      virtual double GetDistanceToHorizon( const CEarthCoordinate& point_1 ) const;
      virtual double GetDistanceToHorizon( const CPolarCoordinate& point_1 ) const;
      virtual double GetEquatorialRadiusInMeters( void ) const;
      virtual double GetPolarRadiusInMeters( void ) const;
      virtual double GetLineOfSightDistanceFromCourse( const CEarthCoordinate& current_location, const CEarthCoordinate& point_a, const CEarthCoordinate& point_b ) const;
      virtual double GetLineOfSightDistance( const CEarthCoordinate& point_1, const CEarthCoordinate& point_2 ) const;
      virtual double GetLineOfSightDistance( const CPolarCoordinate& point_1, const CEarthCoordinate& point_2 ) const;
      virtual double GetLineOfSightDistance( const CEarthCoordinate& point_1, const CPolarCoordinate& point_2 ) const;
      virtual double GetLineOfSightDistance( const CPolarCoordinate& point_1, const CPolarCoordinate& point_2 ) const;
      virtual double GetSurfaceDistance( const CEarthCoordinate& point_1, const CEarthCoordinate& point_2, double * heading_from_point_1_to_point_2 = 0, double * heading_from_point_2_to_point_1 = 0 ) const;
      virtual double GetSurfaceDistance( const CEarthCoordinate& point_1, const CPolarCoordinate& point_2, double * heading_from_point_1_to_point_2 = 0, double * heading_from_point_2_to_point_1 = 0 ) const;
      virtual double GetSurfaceDistance( const CPolarCoordinate& point_1, const CEarthCoordinate& point_2, double * heading_from_point_1_to_point_2 = 0, double * heading_from_point_2_to_point_1 = 0 ) const;
      virtual double GetSurfaceDistance( const CPolarCoordinate& point_1, const CPolarCoordinate& point_2, double * heading_from_point_1_to_point_2 = 0, double * heading_from_point_2_to_point_1 = 0 ) const;
      virtual void   SetEllipsoid( int ellipsoid );
      virtual void   SetEllipsoidByRadii( double equatorial_radius, double polar_radius );
      virtual void   SetEllipsoidByEquatorialRadiusAndFlattening( double equatorial_radius, double flattening );
};

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线亚洲+欧美+日本专区| 夜夜爽夜夜爽精品视频| 色婷婷精品久久二区二区蜜臀av| 丝袜美腿亚洲色图| 国产精品久久免费看| 日韩欧美国产一区二区三区 | 欧美精品一区二| 色妞www精品视频| 国产成人av一区二区三区在线| 亚洲成国产人片在线观看| 亚洲三级理论片| 久久看人人爽人人| 日韩天堂在线观看| 欧美写真视频网站| 在线观看一区不卡| 99久久夜色精品国产网站| 国产精品影音先锋| 精品无人码麻豆乱码1区2区| 亚洲成a人片在线观看中文| 亚洲天堂福利av| 国产精品色一区二区三区| 久久久精品国产免大香伊| 日韩精品一区二区在线观看| 欧美日韩精品是欧美日韩精品| gogo大胆日本视频一区| 国产成人精品网址| 国产成人精品1024| 国产尤物一区二区| 久久国产综合精品| 久久精品国产秦先生| 免费观看30秒视频久久| 视频在线在亚洲| 日韩成人一区二区| 日日摸夜夜添夜夜添精品视频| 亚洲va天堂va国产va久| 亚洲综合在线电影| 亚洲午夜久久久久| 五月婷婷另类国产| 日韩精品1区2区3区| 热久久免费视频| 美女爽到高潮91| 日韩影院在线观看| 美女视频黄频大全不卡视频在线播放| 亚洲bt欧美bt精品777| 日韩国产精品久久| 久久精品国产澳门| 国产乱对白刺激视频不卡 | 91成人国产精品| 在线观看亚洲精品视频| 欧美日本在线播放| 91精品国模一区二区三区| 欧美一卡2卡3卡4卡| 欧美精品一区二| 欧美激情在线观看视频免费| 国产精品高清亚洲| 亚洲精品中文在线影院| 亚洲成a人v欧美综合天堂下载| 青娱乐精品视频| 国模套图日韩精品一区二区| 粉嫩aⅴ一区二区三区四区五区| 成人avav在线| 欧美挠脚心视频网站| 日韩欧美的一区二区| 国产农村妇女毛片精品久久麻豆 | 国产精品污污网站在线观看| 亚洲欧美国产毛片在线| 天天综合色天天综合| 久久99国产精品免费| a美女胸又www黄视频久久| 91福利社在线观看| 精品精品国产高清a毛片牛牛| 中文字幕不卡在线播放| 亚洲一区二区在线免费看| 蓝色福利精品导航| 97久久精品人人做人人爽50路| 欧美日韩国产首页在线观看| 26uuu国产电影一区二区| 最新日韩av在线| 免费在线观看成人| 成人av资源在线| 日韩一区二区三区四区| 中文字幕一区二区三中文字幕| 爽爽淫人综合网网站| 成人网在线播放| 欧美丰满高潮xxxx喷水动漫| 中文字幕第一区第二区| 日韩国产一区二| 91在线观看下载| 精品国产乱码久久久久久图片 | 国产一区二区三区电影在线观看| 99re亚洲国产精品| 久久亚洲春色中文字幕久久久| 亚洲精品久久久蜜桃| 国产激情一区二区三区桃花岛亚洲| 日本乱码高清不卡字幕| 久久在线免费观看| 亚洲成人一二三| jiyouzz国产精品久久| 欧美xxxxxxxxx| 亚洲成a人在线观看| 99精品视频一区二区| 久久久久久久久久看片| 全国精品久久少妇| 欧美色老头old∨ideo| 成人欧美一区二区三区在线播放| 麻豆国产精品官网| 欧美日韩国产天堂| 亚洲精品乱码久久久久| 成人动漫视频在线| 久久久久久久综合狠狠综合| 蜜桃久久av一区| 91麻豆精品国产91久久久更新时间| 亚洲天堂av一区| 成人app网站| 国产精品美女久久久久久久久久久 | 99久久99久久精品免费看蜜桃| 欧美成人a视频| 毛片av一区二区| 欧美一级夜夜爽| 蜜臀久久99精品久久久久久9| 欧美午夜精品久久久久久孕妇| 中文字幕日韩精品一区| 国产白丝精品91爽爽久久| 久久综合色一综合色88| 久久99久久99| 精品国产乱码91久久久久久网站| 蜜桃久久av一区| 日韩免费高清视频| 精品一二三四区| 精品国产三级电影在线观看| 麻豆91精品视频| 久久久五月婷婷| 国产精品亚洲成人| 国产亲近乱来精品视频| 成人午夜精品一区二区三区| 中文字幕一区二区三区蜜月| 成人app网站| 一区二区三区**美女毛片| 欧美视频在线一区二区三区 | 6080午夜不卡| 日韩电影免费在线看| 日韩限制级电影在线观看| 精久久久久久久久久久| 日本一区二区三区在线不卡| 丰满岳乱妇一区二区三区| 国产精品国产馆在线真实露脸| 色综合中文字幕国产 | 亚洲成人av免费| 欧美日韩电影在线播放| 人人精品人人爱| 久久久99精品免费观看不卡| 99久久综合狠狠综合久久| 亚洲另类在线制服丝袜| 欧美日韩国产美| 国内精品视频一区二区三区八戒| 久久精品人人做| 91浏览器打开| 日本欧美在线观看| 久久久久99精品一区| 91在线观看视频| 秋霞电影网一区二区| 久久久亚洲高清| 色美美综合视频| 蜜桃免费网站一区二区三区| 欧美精彩视频一区二区三区| 99精品视频在线观看| 日韩综合一区二区| 国产亚洲一区二区三区| 欧美亚洲一区二区在线| 精品伊人久久久久7777人| 日韩美女精品在线| 日韩区在线观看| 99视频在线精品| 免费精品视频在线| 中文字幕一区二区日韩精品绯色| 欧美日韩一区成人| 岛国一区二区三区| 午夜精品在线看| 国产精品私人自拍| 在线成人午夜影院| 成人久久18免费网站麻豆 | 日韩一区国产二区欧美三区| 丁香婷婷综合网| 丝袜亚洲另类欧美综合| 亚洲欧美在线观看| 欧美电影免费观看高清完整版在线| 91丨porny丨中文| 国产一区二区三区黄视频 | 欧美精品一级二级| 成人激情动漫在线观看| 免费成人你懂的| 亚洲品质自拍视频| 久久一区二区视频| 欧美日韩一级二级| 99久久精品免费看国产免费软件| 蜜桃久久av一区| 亚洲高清免费视频| 亚洲人精品一区| 久久精品视频网| 日韩三级高清在线|