青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

大龍的博客

常用鏈接

統計

最新評論

同一坐標系中,由任意兩點計算地圖旋轉角度(轉載)

一、引言

在各種GIS/GPS應 用中,地圖旋轉是不可或缺的一部分,尤其明顯的是用在實時導航,對象跟蹤等應用方面。用來計算地圖旋轉時偏轉角的坐標點有動態和靜態兩種之分。動態在這里 指的是在已知當前點的情況下,下一點的具體位置是不確定的;而靜態指的是下一點的具體位置是確定的。動態的應用我們常見到的是GPS導航、游戲中的賽車(多賽道、可轉彎等)以 及調度等中的實時地圖旋轉,而靜態更常見的是作為一種功能的演示,如模擬導航,模擬賽車等。地圖旋轉只有在同一坐標系中進行才有意義,地圖旋轉角度的計算 才有依據,本文主要著重點在于如何由前后兩點計算地圖旋轉角度,同時主要考慮動態的方式,靜態方式的旋轉地圖原理是一樣的,就不分開介紹了。

二、約定和術語

²      參考坐標系:本文所依據的坐標系為北京54下的依據高斯克呂格投影所建立的坐標系,即高斯平面坐標系,它的圖像如圖:


X
代表為正北方向,Y代表正東方向,為了使y值都為正,將縱坐標軸西移500km

²      正切函數是直角三角形中,對邊與鄰邊的比值。放在直角坐標系中(如圖)即 tanθ=y/x

其中tanθ的定義域為(-∏/2,+∏/2),值域為(-,+)

²         偏轉角:約定偏轉角為北偏東的角度,將地圖按照偏轉角進行旋轉后將始終朝著運動方向行駛。在高斯平面坐標系中,正北即為X軸,正東即為Y軸,所以tanθ還是為y/x,只是角度的位置有了變化,如圖所示。

²         反正切:函數y=tanx的反函數叫做反正切函數,記做:y=arctanx.
定義域:R;值域:(-π/2,π/2)
三、計算偏轉角

假設存在一起始點pntBegin,并且存在一個原點為pntBegin的平面坐標系,同時約定要旋轉的角度為rotateAngle,則下一點pntDest根據方位有幾種情況,其示意圖如下,我們可以分類進行討論:


l       pntDest.x1>=pntBegin.x0,則該點在第一和第四象限,具體對應點為pntDest(1)pntDest(4),分別對應的北偏東角度為α(1)和α(4),根據Y值的不同,我們又可以分兩種情況,

n       若pntDest.y>=pntBegin.y://在第一象限
rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

n       若pntDest.y<pntBegin.y://在第四象限
rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

rotateAngle=∏-rotateAngle;

l       pntDest.x1<pntBegin.x0,則該點在第二和第三象限,具體對應點為pntDest(2)pntDest(3),分別對應的北偏東角度為α(2)和α(3),根據Y值的不同,分兩種情況進行討論,

n       若pntDest.y>=pntBegin.y://在第二象限
rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));
rotateAngle= 2*∏-rotateAngle;

n       若pntDest.y<pntBegin.y://在第三象限
rotateAngle=arctan2(fabs(p0.x-p1.x),fabs(p0.y-p1.y));

rotateAngle=∏+rotateAngle;

四、在超圖平臺中實現
:開發語言為VC6,平臺為eSuperMap;

代碼如下:

 1
 2void CCarNaviView::RotateMap(CPoint pntBegin,CPoint pntNext)
 3{    
 4    //計算旋轉角度
 5    double dAngle=CalculateRotateAngle(pntBegin,pntNext);
 6    //地圖旋轉
 7    m_MapWnd.GetDrawParam()->SetMapRotationAngle( dAngle );
 8    m_MapWnd.Refresh();
 9}

10
11/**//// \brief 由前后兩點計算當前地圖偏轉角并進行地圖旋轉
12/// \param pntbegin 起始點
13/// \param pntbegin 下一點
14/// \return 地圖要旋轉的角度(北偏東)
15/// \remark 為適應習慣用法,點坐標的表示方法為cpoint(x,y),如pntbegin(x,y)代表的含義為:
16///          x->正東,即為高斯投影中的Y,y->正北,代表高斯投影中的x

17double CCarNaviView::CalculateRotateAngle(CPoint pntBegin,CPoint pntNext)
18{
19    CPoint pntFirst(pntBegin);
20    CPoint pntSecond(pntNext);
21    
22    double dRotateAngle = atan2(fabs(pntBegin.x-pntNext.x),fabs(pntBegin.y-pntNext.y));
23    
24    //如果下一點的橫坐標大于前一點(在第一和第四象限)
25    if (pntNext.x>=pntFirst.x)
26    {
27        //在第一象限(0<=dRotateAngle<=90)
28        if (pntNext.y>=pntFirst.y)
29        {
30            //不做任何處理
31            dRotateAngle=dRotateAngle;
32        }

33        else
34        {
35            dRotateAngle=PI-dRotateAngle;
36        }

37    }

38    else//(在第二和第三象限)
39    {
40        //第二象限
41        if (pntNext.y>=pntFirst.y)
42        {
43            dRotateAngle=2*PI-dRotateAngle;
44        }

45        else//第三象限
46        {
47            dRotateAngle=PI+dRotateAngle;
48        }

49    }

50    return dRotateAngle;
51}

posted on 2012-05-17 03:53 大龍 閱讀(703) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美日韩国产经典色站一区二区三区| 欧美成人午夜激情| 性色av一区二区三区在线观看| 一本色道**综合亚洲精品蜜桃冫| 欧美激情一区二区久久久| 亚洲欧美激情一区| 欧美三级第一页| 国产精品久久777777毛茸茸| 欧美精品在线免费播放| 美女诱惑黄网站一区| 老司机一区二区| 美日韩免费视频| 欧美大片18| 欧美日韩国产精品专区| 欧美视频官网| 午夜久久久久久| 性欧美在线看片a免费观看| 久久本道综合色狠狠五月| 久久都是精品| 久久看片网站| 欧美激情国产日韩| 欧美日韩综合在线| 国产亚洲精品激情久久| 在线国产欧美| 日韩亚洲精品视频| 亚洲综合三区| 久久精品亚洲一区| 欧美激情四色| 久久先锋影音av| 欧美成年人在线观看| 亚洲精品欧洲精品| 亚洲欧美一区二区原创| 久久久久久久久久看片| 欧美日韩国产一区| 亚洲第一成人在线| 性刺激综合网| 亚洲另类自拍| 看片网站欧美日韩| 国产视频久久久久久久| 一区二区欧美国产| 欧美电影电视剧在线观看| 亚洲欧美在线aaa| 欧美日精品一区视频| 亚洲精品少妇30p| 鲁鲁狠狠狠7777一区二区| 中文亚洲欧美| 欧美精品色综合| 最新精品在线| 欧美好吊妞视频| 久久久一区二区| 国内精品亚洲| 久久手机免费观看| 久久se精品一区精品二区| 国产伦精品免费视频| 午夜精品国产| 亚洲一区二区三区777| 欧美特黄一区| 亚洲一级黄色av| 一本色道久久综合亚洲二区三区 | 一区二区三区四区五区在线| 欧美精品九九99久久| 亚洲国产日韩欧美综合久久| 久久综合国产精品| 欧美在线综合| 黄色亚洲精品| 母乳一区在线观看| 老牛国产精品一区的观看方式| 伊人久久大香线| 免费日韩一区二区| 久久这里只精品最新地址| 有坂深雪在线一区| 亚洲高清成人| 欧美成人亚洲成人| 日韩视频免费观看高清完整版| 亚洲高清成人| 欧美婷婷六月丁香综合色| 亚洲欧美日韩精品久久亚洲区| 亚洲一区二区三区四区五区午夜 | 狠狠操狠狠色综合网| 欧美 日韩 国产一区二区在线视频 | 亚洲美女在线国产| 欧美日韩午夜| 新67194成人永久网站| 羞羞答答国产精品www一本| 国产在线拍偷自揄拍精品| 欧美va天堂| 欧美成人综合一区| 亚洲综合99| 欧美一区二区三区在线| 亚洲动漫精品| 99在线精品观看| 国产综合亚洲精品一区二| 欧美激情偷拍| 国产精品久久久久一区二区| 久久精品最新地址| 欧美国产高清| 欧美在线精品一区| 欧美国产综合| 久久久7777| 欧美国产日韩a欧美在线观看| 亚洲欧美999| 麻豆视频一区二区| 午夜欧美大片免费观看| 你懂的国产精品| 久久9热精品视频| 欧美精品导航| 久久综合久色欧美综合狠狠 | 欧美久久综合| 久久激情视频免费观看| 欧美a一区二区| 国产视频亚洲精品| 亚洲国产精品一区二区三区| 国产精品―色哟哟| 亚洲成人在线视频播放 | 亚洲人成在线影院| 狠狠做深爱婷婷久久综合一区| 亚洲人精品午夜| 国内精品久久久久影院色| 中文久久乱码一区二区| 亚洲欧洲日本一区二区三区| 性做久久久久久| 亚洲欧美日韩精品久久奇米色影视 | 久久久精品性| 国产精品成人观看视频国产奇米| 欧美不卡在线| 国语对白精品一区二区| 亚洲永久免费视频| 国产精品99久久久久久人| 欧美成人免费在线视频| 免播放器亚洲一区| 一区二区在线观看视频| 欧美在线免费视频| 欧美专区福利在线| 国产精品亚洲综合色区韩国| 亚洲无线视频| 亚洲一区二区精品| 欧美日韩美女一区二区| 亚洲黄色成人久久久| 亚洲精品久久久久久久久久久| 麻豆91精品91久久久的内涵| 欧美+日本+国产+在线a∨观看| 一区二区三区在线视频观看| 久久久蜜臀国产一区二区| 毛片一区二区| 亚洲国产专区校园欧美| 欧美高清视频在线| 亚洲蜜桃精久久久久久久 | 欧美国产91| 亚洲国产专区| 欧美激情精品久久久久久蜜臀| 亚洲国产小视频在线观看| 亚洲美女精品成人在线视频| 欧美日韩不卡视频| 亚洲一区亚洲| 久久久噜噜噜久噜久久| 在线观看不卡| 欧美啪啪一区| 亚洲性人人天天夜夜摸| 久久精品国产77777蜜臀| 激情成人av在线| 欧美国产另类| 亚洲午夜视频| 久久这里只精品最新地址| 亚洲国产欧美在线| 欧美三日本三级少妇三2023| 午夜精品偷拍| 亚洲国产精品ⅴa在线观看| 在线午夜精品自拍| 国产日韩一区| 亚洲美女视频在线观看| 亚洲欧美日韩精品综合在线观看| 国产欧美日本一区二区三区| 久久综合一区| 亚洲视频国产视频| 男女激情久久| 亚洲综合视频一区| 伊人久久大香线蕉av超碰演员| 欧美国产日本在线| 欧美一区二区精品在线| 亚洲国产精品成人久久综合一区 | 黄色成人在线免费| 欧美理论在线| 久久国产精品99精品国产| 亚洲精品欧美日韩| 久久偷窥视频| 亚洲欧美日韩成人高清在线一区| 伊人夜夜躁av伊人久久| 国产精品v日韩精品| 欧美 日韩 国产在线| 性高湖久久久久久久久| 亚洲免费观看高清在线观看| 老司机成人网| 欧美一区二区日韩| 亚洲图中文字幕| 亚洲激情影视| 国内久久婷婷综合| 国产精自产拍久久久久久蜜| 欧美日韩国产91| 欧美jizzhd精品欧美巨大免费| 午夜亚洲影视|