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

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

?? mymath.c

?? GPS接收機(jī) 衛(wèi)星導(dǎo)航
?? C
字號:
/* * * NMEA library * URL: http://nmea.sourceforge.net * Author: Tim (xtimor@gmail.com) * Licence: http://www.gnu.org/licenses/lgpl.html * $Id: math.c 8 2007-10-23 10:21:24Z xtimor $ * *//*! \file math.h */#include <math.h>#include <float.h>#include "mymath.h"/** * \fn nmea_degree2radian * \brief Convert degree to radian */double nmea_degree2radian(double val){ return (val * NMEA_PI180); }/** * \fn nmea_radian2degree * \brief Convert radian to degree */double nmea_radian2degree(double val){ return (val / NMEA_PI180); }/** * \brief Convert NDEG (NMEA degree) to fractional degree */double nmea_ndeg2degree(double val){    double deg = ((int)(val / 100));    val = deg + (val - deg * 100) / 60;    return val;}/** * \brief Convert fractional degree to NDEG (NMEA degree) */double nmea_degree2ndeg(double val){    double int_part;    double fra_part;    fra_part = modf(val, &int_part);    val = int_part * 100 + fra_part * 60;    return val;}/** * \fn nmea_ndeg2radian * \brief Convert NDEG (NMEA degree) to radian */double nmea_ndeg2radian(double val){ return nmea_degree2radian(nmea_ndeg2degree(val)); }/** * \fn nmea_radian2ndeg * \brief Convert radian to NDEG (NMEA degree) */double nmea_radian2ndeg(double val){ return nmea_degree2ndeg(nmea_radian2degree(val)); }/** * \brief Calculate PDOP (Position Dilution Of Precision) factor */double nmea_calc_pdop(double hdop, double vdop){    return sqrt(pow(hdop, 2) + pow(vdop, 2));}double nmea_dop2meters(double dop){ return (dop * NMEA_DOP_FACTOR); }double nmea_meters2dop(double meters){ return (meters / NMEA_DOP_FACTOR); }/***********************************************   Function: nmea_distance *   Input Variables:     const nmeaPOS *from_pos,    /**< 第一點坐標(biāo)信息    const nmeaPOS *to_pos       /**< 第二點坐標(biāo)信息	*   Return Variables: double*   Usage:計算地表兩點之間的直線距離**********************************************/double nmea_distance(        const nmeaPOS *from_pos,    /**< From position in radians */        const nmeaPOS *to_pos       /**< To position in radians */        ){    double dist = ((double)NMEA_EARTHRADIUS_M) * acos(        sin(to_pos->lat) * sin(from_pos->lat) +        cos(to_pos->lat) * cos(from_pos->lat) * cos(to_pos->lon - from_pos->lon)        );    return dist;}/***********************************************   Function: nmea_distance_ellipsoid *   Input Variables: const nmeaPOS *from_pos,    	 /**< 第一點定位數(shù)據(jù)        const nmeaPOS *to_pos,    	 /**< 第二點定位數(shù)據(jù)        double *from_azimuth,      	 /**< (O) 第一點方位角        double *to_azimuth         	 /**< (O) 第二點方位角	*   Return Variables: double*   Usage:計算地表兩點之間的球面距離**********************************************/double nmea_distance_ellipsoid(        const nmeaPOS *from_pos,            const nmeaPOS *to_pos,              double *from_azimuth,        double *to_azimuth         ){    /* 變量定義 */    double f, a, b, sqr_a, sqr_b;    double L, phi1, phi2, U1, U2, sin_U1, sin_U2, cos_U1, cos_U2;    double sigma, sin_sigma, cos_sigma, cos_2_sigmam, sqr_cos_2_sigmam, sqr_cos_alpha, lambda, sin_lambda, cos_lambda, delta_lambda;    int remaining_steps;     double sqr_u, A, B, delta_sigma;    /* 檢查輸入值,僅在Debug時有效 */    NMEA_ASSERT(from_pos != 0);    NMEA_ASSERT(to_pos != 0);    if ((from_pos->lat == to_pos->lat) && (from_pos->lon == to_pos->lon))    { /* 相同點 */        if ( from_azimuth != 0 )            *from_azimuth = 0;        if ( to_azimuth != 0 )            *to_azimuth = 0;        return 0;        } /* 相同點*/    /* 地球地理參數(shù) */    f = NMEA_EARTH_FLATTENING;    a = NMEA_EARTH_SEMIMAJORAXIS_M;    b = (1 - f) * a;    sqr_a = a * a;    sqr_b = b * b;    /* 計算 */    L = to_pos->lon - from_pos->lon;    phi1 = from_pos->lat;    phi2 = to_pos->lat;    U1 = atan((1 - f) * tan(phi1));    U2 = atan((1 - f) * tan(phi2));    sin_U1 = sin(U1);    sin_U2 = sin(U2);    cos_U1 = cos(U1);    cos_U2 = cos(U2);    /* 迭代初始化 */    sigma = 0;    sin_sigma = sin(sigma);    cos_sigma = cos(sigma);    cos_2_sigmam = 0;    sqr_cos_2_sigmam = cos_2_sigmam * cos_2_sigmam;    sqr_cos_alpha = 0;    lambda = L;    sin_lambda = sin(lambda);                                cos_lambda = cos(lambda);                           delta_lambda = lambda;    remaining_steps = 20;     while ((delta_lambda > 1e-12) && (remaining_steps > 0))     { /* 迭代過程 */        /* 變量 */        double tmp1, tmp2, tan_sigma, sin_alpha, cos_alpha, C, lambda_prev;         /* 計算 */        tmp1 = cos_U2 * sin_lambda;        tmp2 = cos_U1 * sin_U2 - sin_U1 * cos_U2 * cos_lambda;          sin_sigma = sqrt(tmp1 * tmp1 + tmp2 * tmp2);                        cos_sigma = sin_U1 * sin_U2 + cos_U1 * cos_U2 * cos_lambda;           tan_sigma = sin_sigma / cos_sigma;                          sin_alpha = cos_U1 * cos_U2 * sin_lambda / sin_sigma;          cos_alpha = cos(asin(sin_alpha));                         sqr_cos_alpha = cos_alpha * cos_alpha;                             cos_2_sigmam = cos_sigma - 2 * sin_U1 * sin_U2 / sqr_cos_alpha;        sqr_cos_2_sigmam = cos_2_sigmam * cos_2_sigmam;         C = f / 16 * sqr_cos_alpha * (4 + f * (4 - 3 * sqr_cos_alpha));        lambda_prev = lambda;         sigma = asin(sin_sigma);         lambda = L +             (1 - C) * f * sin_alpha            * (sigma + C * sin_sigma * (cos_2_sigmam + C * cos_sigma * (-1 + 2 * sqr_cos_2_sigmam)));                                                        delta_lambda = lambda_prev - lambda;         if ( delta_lambda < 0 ) delta_lambda = -delta_lambda;         sin_lambda = sin(lambda);        cos_lambda = cos(lambda);        remaining_steps--;     }  /* 迭代結(jié)束 */    /* 計算  */    sqr_u = sqr_cos_alpha * (sqr_a - sqr_b) / sqr_b;     A = 1 + sqr_u / 16384 * (4096 + sqr_u * (-768 + sqr_u * (320 - 175 * sqr_u)));    B = sqr_u / 1024 * (256 + sqr_u * (-128 + sqr_u * (74 - 47 * sqr_u)));    delta_sigma = B * sin_sigma * (         cos_2_sigmam + B / 4 * (         cos_sigma * (-1 + 2 * sqr_cos_2_sigmam) -        B / 6 * cos_2_sigmam * (-3 + 4 * sin_sigma * sin_sigma) * (-3 + 4 * sqr_cos_2_sigmam)        ));    /* 計算結(jié)果 */    if ( from_azimuth != 0 )    {        double tan_alpha_1 = cos_U2 * sin_lambda / (cos_U1 * sin_U2 - sin_U1 * cos_U2 * cos_lambda);        *from_azimuth = atan(tan_alpha_1);    }    if ( to_azimuth != 0 )    {        double tan_alpha_2 = cos_U1 * sin_lambda / (-sin_U1 * cos_U2 + cos_U1 * sin_U2 * cos_lambda);        *to_azimuth = atan(tan_alpha_2);    }    return b * A * (sigma - delta_sigma);}/***********************************************   Function: nmea_move_horz *   Input Variables:     const nmeaPOS *start_pos,   		/**< 起始點坐標(biāo)信息     nmeaPOS *end_pos,           	/**< 計算點坐標(biāo)信息存放指針    double azimuth,             		/**< 方位角 (degree) [0, 359]     double distance             		/**< 距離(km)*   Return Variables: int*   Usage:計算另一個相對點的坐標(biāo)信息**********************************************/int nmea_move_horz(    const nmeaPOS *start_pos,   /**< Start position in radians */    nmeaPOS *end_pos,           /**< Result position in radians */    double azimuth,             /**< Azimuth (degree) [0, 359] */    double distance             /**< Distance (km) */    ){    nmeaPOS p1;    int RetVal = 1;	 p1= *start_pos;    distance /= NMEA_EARTHRADIUS_KM; /* Angular distance covered on earth's surface */    azimuth = nmea_degree2radian(azimuth);    end_pos->lat = asin(        sin(p1.lat) * cos(distance) + cos(p1.lat) * sin(distance) * cos(azimuth));    end_pos->lon = p1.lon + atan2(        sin(azimuth) * sin(distance) * cos(p1.lat), cos(distance) - sin(p1.lat) * sin(end_pos->lat));    return RetVal;}/***********************************************   Function: nmea_move_horz_ellipsoid *   Input Variables:     const nmeaPOS *start_pos,   	  	/**< 起始點坐標(biāo)信息     nmeaPOS *end_pos,           	/**< 相對點坐標(biāo)信息     double azimuth,             		/**< 方位角    double distance,            		/**< 距離(km)     double *end_azimuth         		/**< 相對點的方位角*   Return Variables: int*   Usage:計算另一個相對點的球面坐標(biāo)信息**********************************************/int nmea_move_horz_ellipsoid(    const nmeaPOS *start_pos,   	      nmeaPOS *end_pos,               double azimuth,                double distance,               double *end_azimuth             ){    /* 計算變量 */    double f, a, b, sqr_a, sqr_b;    double phi1, tan_U1, sin_U1, cos_U1, s, alpha1, sin_alpha1, cos_alpha1;    double tan_sigma1, sigma1, sin_alpha, cos_alpha, sqr_cos_alpha, sqr_u, A, B;    double sigma_initial, sigma, sigma_prev, sin_sigma, cos_sigma, cos_2_sigmam, sqr_cos_2_sigmam, delta_sigma;    int remaining_steps;    double tmp1, phi2, lambda, C, L;        /* 檢查輸入 */    NMEA_ASSERT(start_pos != 0);    NMEA_ASSERT(end_pos != 0);        if (fabs(distance) < 1e-12)    { /* 相同點*/        *end_pos = *start_pos;        if ( end_azimuth != 0 ) *end_azimuth = azimuth;        return 0;    } /* 相同點 */    /* 地球地理信息 */    f = NMEA_EARTH_FLATTENING;    a = NMEA_EARTH_SEMIMAJORAXIS_M;    b = (1 - f) * a;    sqr_a = a * a;    sqr_b = b * b;        /* 計算 */    phi1 = start_pos->lat;    tan_U1 = (1 - f) * tan(phi1);    cos_U1 = 1 / sqrt(1 + tan_U1 * tan_U1);    sin_U1 = tan_U1 * cos_U1;    s = distance;    alpha1 = azimuth;    sin_alpha1 = sin(alpha1);    cos_alpha1 = cos(alpha1);    tan_sigma1 = tan_U1 / cos_alpha1;    sigma1 = atan2(tan_U1, cos_alpha1);    sin_alpha = cos_U1 * sin_alpha1;    sqr_cos_alpha = 1 - sin_alpha * sin_alpha;    cos_alpha = sqrt(sqr_cos_alpha);    sqr_u = sqr_cos_alpha * (sqr_a - sqr_b) / sqr_b;     A = 1 + sqr_u / 16384 * (4096 + sqr_u * (-768 + sqr_u * (320 - 175 * sqr_u)));    B = sqr_u / 1024 * (256 + sqr_u * (-128 + sqr_u * (74 - 47 * sqr_u)));        /* 迭代計算初始化 */    sigma_initial = s / (b * A);    sigma = sigma_initial;    sin_sigma = sin(sigma);    cos_sigma = cos(sigma);    cos_2_sigmam = cos(2 * sigma1 + sigma);    sqr_cos_2_sigmam = cos_2_sigmam * cos_2_sigmam;    delta_sigma = 0;    sigma_prev = 2 * NMEA_PI;    remaining_steps = 20;    while ((fabs(sigma - sigma_prev) > 1e-12) && (remaining_steps > 0))    { /* 迭代 */        cos_2_sigmam = cos(2 * sigma1 + sigma);        sqr_cos_2_sigmam = cos_2_sigmam * cos_2_sigmam;        sin_sigma = sin(sigma);        cos_sigma = cos(sigma);        delta_sigma = B * sin_sigma * (              cos_2_sigmam + B / 4 * (              cos_sigma * (-1 + 2 * sqr_cos_2_sigmam) -              B / 6 * cos_2_sigmam * (-3 + 4 * sin_sigma * sin_sigma) * (-3 + 4 * sqr_cos_2_sigmam)             ));        sigma_prev = sigma;        sigma = sigma_initial + delta_sigma;        remaining_steps --;    } /* 迭代結(jié)束 */        /* 計算結(jié)果 */    tmp1 = (sin_U1 * sin_sigma - cos_U1 * cos_sigma * cos_alpha1);    phi2 = atan2(            sin_U1 * cos_sigma + cos_U1 * sin_sigma * cos_alpha1,            (1 - f) * sqrt(sin_alpha * sin_alpha + tmp1 * tmp1)            );    lambda = atan2(            sin_sigma * sin_alpha1,            cos_U1 * cos_sigma - sin_U1 * sin_sigma * cos_alpha1            );    C = f / 16 * sqr_cos_alpha * (4 + f * (4 - 3 * sqr_cos_alpha));    L = lambda -        (1 - C) * f * sin_alpha * (        sigma + C * sin_sigma *        (cos_2_sigmam + C * cos_sigma * (-1 + 2 * sqr_cos_2_sigmam))        );        /* 計算結(jié)果 */    end_pos->lon = start_pos->lon + L;    end_pos->lat = phi2;    if ( end_azimuth != 0 )    {        *end_azimuth = atan2(            sin_alpha, -sin_U1 * sin_sigma + cos_U1 * cos_sigma * cos_alpha1            );    }    return 1;}/** * \brief Convert position from INFO to radians position */void nmea_info2pos(const nmeaINFO *info, nmeaPOS *pos){    pos->lat = nmea_ndeg2radian(info->lat);    pos->lon = nmea_ndeg2radian(info->lon);}/** * \brief Convert radians position to INFOs position */void nmea_pos2info(const nmeaPOS *pos, nmeaINFO *info){    info->lat = nmea_radian2ndeg(pos->lat);    info->lon = nmea_radian2ndeg(pos->lon);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久蜜臀粉嫩| 欧洲国内综合视频| 亚洲欧美另类久久久精品| 在线播放亚洲一区| 99精品视频在线观看免费| 精品一区二区三区不卡| 亚洲精品国产成人久久av盗摄| 亚洲精品一区二区三区香蕉| 91久久精品一区二区二区| 国产乱国产乱300精品| 午夜亚洲福利老司机| 一区二区中文字幕在线| 久久综合九色综合欧美98| 欧美酷刑日本凌虐凌虐| 色综合天天综合狠狠| 国内精品伊人久久久久av影院 | 日韩高清不卡在线| 亚洲免费在线播放| 国产精品毛片无遮挡高清| 精品国产免费视频| 日韩视频一区二区三区在线播放 | 在线看日本不卡| 91麻豆swag| 成人福利电影精品一区二区在线观看| 美美哒免费高清在线观看视频一区二区 | a美女胸又www黄视频久久| 激情小说亚洲一区| 麻豆成人免费电影| 美女视频一区二区| 蜜桃av一区二区| 看电影不卡的网站| 狠狠色丁香久久婷婷综合_中| 天天操天天干天天综合网| 亚洲第一激情av| 亚洲成av人影院在线观看网| 亚洲成人资源网| 亚洲成人激情av| 天天影视涩香欲综合网| 亚洲国产精品久久久久婷婷884| 亚洲精品高清在线| 一区二区在线观看av| 亚洲一二三四在线| 国产日韩欧美一区二区三区乱码 | 91视频91自| 色就色 综合激情| 欧美日韩在线观看一区二区| 欧美日韩国产乱码电影| 91精品国产综合久久婷婷香蕉| 91精品国产综合久久久久久久久久 | 日本一区二区免费在线观看视频| 久久在线免费观看| 国产无人区一区二区三区| 欧美精彩视频一区二区三区| 国产精品久久久久久户外露出| 中文字幕制服丝袜一区二区三区| 亚洲欧美另类小说| 性做久久久久久| 黑人巨大精品欧美一区| 成人污视频在线观看| 91视频com| 777久久久精品| 久久精品视频在线免费观看 | 捆绑紧缚一区二区三区视频| 精一区二区三区| 成人v精品蜜桃久久一区| 日本乱人伦aⅴ精品| 7777精品伊人久久久大香线蕉 | 欧美一区二区视频观看视频| 精品三级在线看| 国产精品久久久久久久久动漫| 亚洲国产成人91porn| 久久99精品一区二区三区| 成人看片黄a免费看在线| 欧洲一区二区三区在线| 精品国产一区二区在线观看| 国产精品全国免费观看高清 | 亚洲成a人片在线观看中文| 久久99深爱久久99精品| 99久久精品国产一区| 欧美一区二区视频在线观看2022 | 欧美日韩国产免费一区二区 | 欧美日韩国产成人在线91| 精品粉嫩超白一线天av| 日韩美女视频一区| 日本不卡一区二区三区| www.亚洲精品| 欧美成人精品3d动漫h| 日韩一区欧美小说| 狠狠色丁香久久婷婷综合丁香| 91福利精品第一导航| 久久这里只有精品6| 亚洲成人www| 99精品国产视频| 亚洲精品一区二区三区在线观看| 一区二区三区丝袜| 国产不卡在线播放| 日韩一区二区三免费高清| 亚洲女人小视频在线观看| 国产精品18久久久久久久久 | 国产精品色一区二区三区| 日韩av电影免费观看高清完整版| 久久99国产乱子伦精品免费| 成人免费av在线| 国产精品久久久久久久久免费丝袜| 日韩精彩视频在线观看| 91浏览器在线视频| 国产精品女同一区二区三区| 美日韩一级片在线观看| 91福利视频在线| 欧美经典一区二区三区| 精品亚洲免费视频| 7777精品伊人久久久大香线蕉| 亚洲人成精品久久久久久| 岛国一区二区在线观看| 国产亚洲精品免费| 国产一区二区电影| 亚洲精品一区二区三区在线观看| 秋霞av亚洲一区二区三| 欧美精品少妇一区二区三区| 一区二区在线免费| 91黄色激情网站| 亚洲日穴在线视频| 91麻豆国产福利精品| 亚洲欧美偷拍卡通变态| 91一区一区三区| 亚洲欧洲综合另类| 在线免费观看视频一区| 亚洲综合成人网| 欧美性受xxxx黑人xyx性爽| 亚洲精品免费视频| 欧美影片第一页| 一区二区三区不卡在线观看| 91啪亚洲精品| 一区二区欧美精品| 欧美日韩一区二区在线观看视频| 亚洲激情图片qvod| 欧美揉bbbbb揉bbbbb| 午夜精品久久久久久久久| 欧美日韩电影一区| 免费成人在线观看视频| 日韩欧美一二三四区| 久久69国产一区二区蜜臀| 久久老女人爱爱| 国产一区二区三区黄视频| 精品国产成人系列| 国产精品影音先锋| 中文字幕免费在线观看视频一区| 99免费精品视频| 一个色妞综合视频在线观看| 欧美三级日韩在线| 伦理电影国产精品| 欧美高清在线一区| 在线免费精品视频| 免费国产亚洲视频| 中文子幕无线码一区tr| av男人天堂一区| 天天射综合影视| 精品国产乱码久久久久久免费| 国产69精品一区二区亚洲孕妇| 国产精品久久免费看| 欧美在线观看18| 久久99精品久久只有精品| 国产精品视频你懂的| 欧美无人高清视频在线观看| 视频在线观看一区| 国产午夜三级一区二区三| 色先锋aa成人| 狂野欧美性猛交blacked| 国产精品二三区| 91精品国产麻豆国产自产在线| 国产精品乡下勾搭老头1| 亚洲综合色成人| 国产三级久久久| 欧美午夜精品免费| 国产一区二区免费在线| 亚洲欧美另类久久久精品| 精品区一区二区| 一本一本大道香蕉久在线精品 | 亚洲国产精品黑人久久久| 在线免费精品视频| 国产一区二区三区免费观看| 亚洲免费色视频| 久久久高清一区二区三区| 91麻豆国产福利精品| 精品中文字幕一区二区| 亚洲国产cao| 中文字幕人成不卡一区| 日韩免费福利电影在线观看| 色综合久久久久网| 国产精品18久久久久久久久久久久| 亚洲国产你懂的| 日韩一区在线播放| 欧美精品一区二区不卡| 欧美色欧美亚洲另类二区| 成人一区在线观看| 久热成人在线视频| 午夜国产精品一区| 一区二区三区在线播放| 中文字幕av一区二区三区免费看 | 亚洲欧美日本在线|