本發明涉及一種飛機座艙顯示系統中導航顯示器上航線轉彎弧的計算方法,本計算方法可作為一個獨立、可復用的軟件模塊嵌入在顯示系統軟件中使用。
背景技術:
在飛機座艙顯示系統的導航顯示畫面中,經常要顯示飛機預先規劃的航線信息。航線中包含多個航路點(轉彎點),如果用戶不要求顯示每個航路點的轉彎弧,則可以直接用直線連接相鄰兩個航路點,以構成完整的航線;如果用戶要求顯示飛機經過某個航路點后、飛向下一個航路點的轉彎弧,則需要確定該點轉彎弧的繪制參數,包括轉彎弧圓心、轉彎弧起始角度(進入點)和轉彎弧結束角度(退出點)。每個航路點的轉彎弧以及用直線段連接某點的轉彎弧退出點、下一點轉彎弧進入點便構成了完整航線,連接兩個轉彎弧的直線段需要與兩個轉彎弧都相切。
常見的轉彎方式包括壓點轉彎、繞點轉彎和向點轉彎,此外,顯示系統也可能指定某一個點或幾個點不需繪制轉彎弧,而其他點則需要繪制轉彎弧。
所謂壓點轉彎,就是飛機先飛過此航路點后,再開始向下一個航路點轉彎。在這種轉彎方式中,航路點自身是轉彎弧的進入點。
所謂繞點轉彎,就是飛機在該點轉彎時,不直接飛臨該點上空,而是將該點作為轉彎弧的圓心。
所謂向點轉彎,指的是飛機在經過此航路點時,先進行轉彎,在航路點上完成轉彎,即該航路點是其轉彎弧的退出點。
如果某航路點不需繪制轉彎弧,則可認為此點的轉彎弧半徑為0,此點自身即是轉彎弧的圓心、進入點和退出點。
如果顯示系統僅被告知了各航路點的位置和轉彎方式、轉彎方向及轉彎半徑,則需根據這些參數確定出每個航路點轉彎弧的圓心、進入點和退出點位置。本案給出了一種滿足要求的轉彎弧計算方法。
技術實現要素:
本發明的發明目的在于提供一種導航顯示畫面中航線轉彎弧參數求解方法,該方法計算簡便,對系統性能影響小,能根據不同轉彎點的轉彎方式的組合情況準確求解各轉彎弧的圓心、起始角、終止角。
本發明的發明目的通過以下技術方案實現:
一種導航顯示畫面中航線轉彎弧參數求解方法,包含以下步驟:
步驟1)、判斷下一轉彎點是否為壓點轉彎,如果是壓點轉彎點執行步驟2),否則執行步驟6);
步驟2)判斷當前轉彎點是否為直接轉彎,如果為直接轉彎,則將當前轉彎點作為轉彎弧的圓心、進入點、退出點,執行步驟16);如果不為直接轉彎,執行步驟3);
步驟3)判斷當前轉彎點是否為壓點轉彎,如果是壓點轉彎則計算當前轉彎點的轉彎弧的圓心和退出點,執行步驟16);如果不是壓點轉彎,執行步驟4);
步驟4)判斷當前轉彎點是否為繞點轉彎,如果是繞點轉彎,則計算當前轉彎點的轉彎弧的退出點,執行步驟16);如果不是繞點轉彎,則執行步驟5);
步驟5)判斷當前轉彎點是否為向點轉彎,如果是向點轉彎,則計算當前轉彎點的轉彎弧的圓心,執行步驟16);
步驟6)、判斷下一轉彎點是否為繞點轉彎,如果是繞點轉彎,執行步驟7),如果不是繞點轉彎,執行步驟11);
步驟7)判斷當前轉彎點是否為直接轉彎,如果是直接轉彎,則計算下一轉彎點的轉彎弧的進入點執行步驟16);如果不是直接轉彎,執行步驟8);
步驟8)判斷當前轉彎點是否為壓點轉彎,如果是壓點轉彎,則計算當前轉彎點的轉彎弧的圓心、退出點和下一轉彎點的轉彎弧的進入點,執行步驟16);如果不是壓點轉彎,執行步驟9);
步驟9)判斷當前轉彎點是否為繞點轉彎,如果是繞點轉彎,則計算當前轉彎點的轉彎弧的退出點,下一轉彎點的轉彎弧的進入點,執行步驟16);如果不是繞點轉彎,執行步驟10);
步驟10)、判斷當前轉彎點是否為向點轉彎,如果是向點轉彎,則計算下一轉彎點的轉彎弧的進入點、當前轉彎點的轉彎弧的圓心,執行步驟16);
步驟11)、判斷下一轉彎點是否為向點轉彎,如果是向點轉彎,執行步驟12),如果不是向點轉彎,執行步驟16);
步驟12)判斷下下一轉彎點是否為直接轉彎,如果是直接轉彎,則計算下一轉彎點的轉彎弧的圓心,執行步驟16),如果不是直接轉彎,則執行步驟13);
步驟13)判斷下下一轉彎點是否為壓點轉彎,如果是壓點轉彎,則計算下一轉彎點的轉彎弧的圓心,執行步驟16),如果不是壓點轉彎,則執行步驟14);
步驟14)判斷下下一轉彎點是否為繞點轉彎,如果是繞點轉彎,則計算下一轉彎點的轉彎弧的圓心,執行步驟16),如果不是繞點轉彎,則執行步驟15);
步驟15)判斷下下一轉彎點是否為壓點轉彎,如果為壓點轉彎,則計算下一轉彎點的轉彎弧的圓心、下下一轉彎點的轉彎弧的進入點,執行步驟16);
步驟16)將下一轉彎點作為當前轉彎點,執行步驟1),直至獲知各個轉彎點的轉彎弧的圓心、進入點和退出點,繪制航線。
依據上述特征,所述步驟3)中計算當前轉彎點的轉彎弧的圓心和退出點的方法為:
1)求解出當前轉彎點相對于前一點轉彎點的連線的方位角,記為α;
2)若當前轉彎點的轉彎方向為右轉,則以相對于當前轉彎點的方位角為β=α+90,且與當前轉彎點的距離為當前轉彎點轉彎半徑的點作為當前轉彎弧的圓心;
若當前轉彎點的轉彎方向為左轉,則以相對于當前轉彎點的方位角為β=α-90,且與當前轉彎點的距離為當前轉彎點轉彎半徑的點作為當前轉彎弧的圓心;
3)如果下一轉彎點的轉彎方向與當前轉彎點相同,則計算當前轉彎點的圓心相對于下一轉彎點的方位角,記作γ;令δ=γ+n,n=0,1,2,3…180,逐點計算以當前轉彎點的圓心為射點,方位角為δ的射線與當前轉彎點的轉彎弧的交點,記為點s;逐點計算以下一轉彎點為射點,方位角為δ的射線與下一轉彎點的轉彎弧的交點,記為點r,若點r與點s的連線與點s與點o垂直,則s點即為當前轉彎點的轉彎弧的退出點。
依據上述特征,所述步驟4)中計算當前轉彎點的轉彎弧的退出點的方法為:
1)求解出下一轉彎點相對于當前轉彎點的連線的方位角,記為α;
2)若當前轉彎點的轉彎方向為左轉,則令β=α+n,n=0,1,2…90;逐點計算以當前轉彎點為射點、方位角為β的射線與當前轉彎點的轉彎弧的交點,記為r;
若當前轉彎點的轉彎方向為右轉,則令β=α-n,n=1,2…90;逐點計算以當前轉彎點為射點、方位角為β的射線與當前轉彎點的轉彎弧的交點;
3)若當前轉彎點與交點的連線與下一轉彎點與交點的連線垂直,則此交點即為當前轉彎點的轉彎弧的退出點。
依據上述特征,所述步驟5)中計算當前轉彎點的轉彎弧的圓心的方法為:
1)求解出當前轉彎點相對于前一點轉彎點的連線的方位角,記為α;
2)若當前轉彎點的轉彎方向為右轉,則以相對于當前轉彎點的方位角為β=α+90,且距離為當前轉彎點的轉彎弧的半徑為距離的點作為當前轉彎點的圓心;
若當前轉彎點的轉彎方向為左轉,則以相對于當前轉彎點的方位角為β=α-90,且距離為當前轉彎點的轉彎弧的半徑為距離的點作為當前轉彎點的圓心。
依據上述特征,所述步驟7)中計算下一轉彎點的轉彎弧的進入點的方法為:
1)求解出當前轉彎點相對于下一轉彎點的連線的方位角,記為α;
2)若下一轉彎點的轉彎方向為右轉,則令β=α+n,n=0,1,2…90;逐點計算以下一轉彎點為射點、方位角為β射線與下一轉彎點的轉彎弧的交點;
若下一轉彎點轉彎方向為左轉,則令β=α-n,n=1,2…90;逐點計算以下一轉彎點為射點、方位角為β的射線與下一轉彎點的轉彎弧的交點;
3)若當前轉彎點與交點的連線與下一轉彎點與交點的連線垂直,則此交點即為下一轉彎點的轉彎弧的進入點。
依據上述特征,所述步驟8)中計算當前轉彎點的轉彎弧的圓心、退出點和下一轉彎點的轉彎弧的進入點的方法為:
1)求解出當前轉彎點相對于前一點轉彎點的連線的方位角,記為α;
2)若當前轉彎點的轉彎方向為右轉,則以相對于當前轉彎點的方位角為β=α+90,且與當前轉彎點的距離為當前轉彎點轉彎半徑的點作為當前轉彎弧的圓心;
若當前轉彎點的轉彎方向為左轉,則以相對于當前轉彎點的方位角為β=α-90,且與當前轉彎點的距離為當前轉彎點轉彎半徑的點作為當前轉彎弧的圓心;
3)如果下一轉彎點的轉彎方向與當前轉彎點相同,則計算當前轉彎點的圓心相對于下一轉彎點的方位角,記作γ;令δ=γ+n,n=0,1,2,3…180,逐點計算以當前轉彎點的圓心為射點,方位角為δ的射線與當前轉彎點的轉彎弧的交點,記為點s;逐點計算以下一轉彎點為射點,方位角為δ的射線與下一轉彎點的轉彎弧的交點,記為點r,若點r與點s的連線與點s與點o垂直,則s點即為當前轉彎點的轉彎弧的退出點;r點即為下一轉彎點的轉彎弧的進入點;
如果下一轉彎點的轉彎方向與當前轉彎點不同,則計算圓點相對于下一轉彎點的方位角,記作γ;令δ=γ+n,n=0,1,2,3…180,逐點計算以圓點為射點,方位角為δ的射線與當前轉彎點的轉彎弧的交點,記為點s;逐點計算以下一轉彎點為射點、方位角為δ+180度的射線與下一轉彎點轉彎弧的交點,記為點r,若點r與點s的連線與點s與點o垂直,則s點即為當前轉彎點的轉彎弧的退出點;r點即為下一轉彎點的轉彎弧的進入點。
依據上述特征,所述步驟9)中計算當前轉彎點的轉彎弧的退出點,下一轉彎點的轉彎弧的進入點的方法為:
如果下一轉彎點的轉彎方向與當前轉彎點相同,則計算當前轉彎點的圓心相對于下一轉彎點的方位角,記作γ;令δ=γ+n,n=0,1,2,3…180,逐點計算以當前轉彎點的圓心為射點,方位角為δ的射線與當前轉彎點的轉彎弧的交點,記為點s;逐點計算以下一轉彎點為射點,方位角為δ的射線與下一轉彎點的轉彎弧的交點,記為點r,若點r與點s的連線與點s與點o垂直,則s點即為當前轉彎點的轉彎弧的退出點;r點即為下一轉彎點的轉彎弧的進入點;
如果下一轉彎點的轉彎方向與當前轉彎點不同,則計算圓點相對于下一轉彎點的方位角,記作γ;令δ=γ+n,n=0,1,2,3…180,逐點計算以圓點為射點,方位角為δ的射線與當前轉彎點的轉彎弧的交點,記為點s;逐點計算以下一轉彎點為射點、方位角為δ+180度的射線與下一轉彎點轉彎弧的交點,記為點r,若點r與點s的連線與點s與點o垂直,則s點即為當前轉彎點的轉彎弧的退出點;r點即為下一轉彎點的轉彎弧的進入點。
依據上述特征,所述步驟10)中計算下一轉彎點的轉彎弧的進入點、當前轉彎點的轉彎弧的圓心的方法為:
1)若當前轉彎點的轉彎方向為右轉,且下一轉彎點的轉彎方向也是右轉,則:計算出當前轉彎點相對于下一轉彎點的方位角,記作α,令β=α+n,n=1,2,…90,逐點計算以下一轉彎點為射點、方位角為β的射線與下一轉彎點的轉彎弧的交點,記為點p,若點p與當前轉彎點的連線與點p與下一轉彎點的連線垂直,則p點即為下一轉彎點的轉彎弧的進入點;記當前轉彎點相對于下一轉彎點的轉彎弧的進入點的方位角為γ,則以相對于當前轉彎點的方位角為γ-90度,距離為當前轉彎點的轉彎弧半徑的點為當前轉彎點的圓心;
2)若當前轉彎點的轉彎方向為右轉,而下一轉彎點的轉彎方向為左轉,則:計算出當前轉彎點相對于下一轉彎點的方位角,記作α,令β=α-n,n=1,2,…90,逐點計算以下一轉彎點為射點、方位角為β的射線與下一轉彎點的轉彎弧的交點,記為點p,若點p與當前轉彎點的連線與點p與下一轉彎點的連線垂直,則p點即為下一轉彎點的轉彎弧的進入點;記當前轉彎點相對于下一轉彎點的轉彎弧的進入點的方位角為γ,則以相對于當前轉彎點的方位角為γ-90度,距離為當前轉彎點的轉彎弧半徑的點為當前轉彎點的圓心;
3)若當前轉彎點的轉彎方向為左轉,且下一轉彎點的轉彎方向是右轉,則:計算出當前轉彎點相對于下一轉彎點的方位角,記作α,令β=α+n,n=1,2,…90,逐點計算以下一轉彎點為射點、方位角為β的射線與下一轉彎點的轉彎弧的交點,記為點p,若點p與當前轉彎點的連線與點p與下一轉彎點的連線垂直,則p點即為下一轉彎點的轉彎弧的進入點;記當前轉彎點相對于下一轉彎點的轉彎弧的進入點的方位角為γ,則以相對于當前轉彎點的方位角為γ+90度,距離為當前轉彎點的轉彎弧半徑的點為當前轉彎點的圓心;
4)若當前轉彎點的轉彎方向為左轉,而下一轉彎點的轉彎方向也為左轉,則:計算出當前轉彎點相對于下一轉彎點的方位角,記作α,令β=α-n,n=1,2,…90,逐點計算以下一轉彎點為射點、方位角為β的射線與下一轉彎點的轉彎弧的交點,記為點p,若點p與當前轉彎點的連線與點p與下一轉彎點的連線垂直,則p點即為下一轉彎點的轉彎弧的進入點;記當前轉彎點相對于下一轉彎點的轉彎弧的進入點的方位角為γ,則以相對于當前轉彎點的方位角為γ+90度,距離為當前轉彎點的轉彎弧半徑的點為當前轉彎點的圓心。
本發明提出了一種飛機座艙顯示系統導航顯示畫面中航線轉彎弧參數求解方法,該方法充分考慮了各種轉彎方式、轉彎方向的航路點組合情況,能根據不同的組合要求,根據航路點的位置、轉彎方向和轉彎方式、轉彎半徑,準確求解各轉彎弧的圓心、進入點和退出點,滿足航線繪制需求。該算法計算簡便,對系統性能影響很小,適于在嵌入式實時系統或仿真系統中推廣使用。
附圖說明
圖1為直接轉彎到繞點轉彎的參數求解的示意圖;
圖2為壓點轉彎到繞點轉彎的參數求解的示意圖(轉彎方向相同);
圖3為壓點轉彎到繞點轉彎的參數求解的示意圖(轉彎方向不相同);
圖4為向點轉彎到繞點轉彎的參數求解的示意圖(轉彎方向相同);
圖5為向點轉彎到繞點轉彎的參數求解的示意圖(轉彎方向不相同);
圖6為本發明的流程示意圖。
具體實施方式
下面結合附圖和實施例,對本發明作進一步的詳細描述。
如上文所述,導航顯示畫面中,常見的航線航路點轉彎方式有四種:壓電轉彎、繞點轉彎、向點轉彎和直接轉彎(直接轉彎不需在導航畫面中繪制轉彎弧),這四種轉彎方式可自由組合,本發明保證在一條航線中任意兩個相鄰航路點,不論采用何種轉彎方式,都能正確求解出轉彎弧參數。
假設i-1點、i點和i+1點是航線中三個相鄰的航路點,現在要求解i點的轉彎弧參數,求解轉彎弧參數的關鍵是確定其圓心。可對不同轉彎方式的航路點的轉彎弧參數求解過程分析如下:
1)若i點的轉彎方式是壓點轉彎,則i點即是其轉彎弧的進入點,而根據i-1點轉彎弧的退出點與i點連線的方位角,結合i點轉彎半徑,可確定i點轉彎弧的圓心位置,再根據i+1點的轉彎方式可確定i點轉彎弧的退出點。也就是說需要根據上一點的參數確定本點轉彎弧的圓心;
2)若i點的轉彎方式是繞點轉彎,則i點自身就是其轉彎弧的圓心,過i-1點轉彎弧退出點、且與i點轉彎弧相切的切線有兩條,其中一條切線的切點即是i點轉彎弧的進入點(需在算法中確定正確的切點);再根據i+1點轉彎方式可確定i點轉彎弧的退出點。也就是說本點轉彎弧圓心已知,不需求解;
3)若i點的轉彎方式是向點轉彎,則i點是其轉彎弧的退出點,根據i-1點的轉彎弧參數,并不能確定i點轉彎弧圓心。需要先確定i+1點轉彎弧的進入點,根據i+1點轉彎弧進入點與i點連線的方位角以及i點轉彎半徑,才能確定i點轉彎弧的圓心。也就是說i點轉彎弧的圓心需要通過i+1點轉彎參數確定,如果i+1航路點仍然是向點轉彎,則需先根據i+2點轉彎參數確定i+1點轉彎弧圓心及進入點,再確定i點轉彎弧圓心。
若i點為轉彎方式是直接轉彎,不需畫轉彎弧,則將i點視作該點轉彎弧的圓心、進入點和結束點。
根據以上分析,在求解各轉彎弧參數過程中,先遍歷航線中各轉彎點,根據各點的轉彎方式,確定各點轉彎弧參數的求解順序。若某轉彎點轉彎方式是壓點轉彎或繞點轉彎,則該點的轉彎圓心可由上一個轉彎點參數確定,故可采用從前向后的順序求解各點轉彎參數;若某轉彎點轉彎方式是向點轉彎,則該點的轉彎圓心必須由下一個轉彎點參數確定,故應采用從后向前的順序求解各點轉彎參數。
如圖6所示,本計算方法執行過程:
本計算方法的執行過程可用C風格PDL描述:
對不同轉彎方式的航路點的轉彎弧參數求解過程具體如下:
情況一:直接轉彎航路點到繞點轉彎航路點的轉彎弧參數求解方法
假設i點為直接轉彎航路點,不需繪制轉彎弧,則可認為i點轉彎弧半徑為0,轉彎弧的進入點、退出點和圓心都是i點本身。i+1點是繞點轉彎,則i+1點轉彎弧的圓心是它自身,如圖1所示,則:
1)求解出i點相對于i+1點的連線的方位角,記為α(單位為度,0度指向正上方,下同);
2)若i+1點轉彎方向為右轉(如圖1),則令β=α+n,n=0,1,2…90;逐點計算以i+1點為射點、方位角為β的射線與轉彎弧的交點,記為r;
若i+1點轉彎方向為左轉,則令β=α-n,n=1,2…90;逐點計算以i+1點為射點、方位角為β的射線與轉彎弧的交點,記為r;
3)若直線ri與直線r(i+1)垂直,則此點即為所求解的i+1點轉彎弧的進入點,記為p點。
情況二、壓點轉彎弧到繞點轉彎弧轉彎參數的求解方法
假設i點是壓點轉彎,i+1點是繞點轉彎,則i點本身即i點轉彎弧的進入點,將i-1點的轉彎弧退出點記為m。則:
1)用直線連接m點和i點,計算i點相對于m點的方位角,記為α;
2)根據i點轉彎方向,確定i點轉彎弧圓心位置。假設i點轉彎方向為右轉,且轉彎半徑為R1,如圖二所示,令β=α+90,則相對于i點方位角為β,且距離為R1的點,即為i點轉彎弧的圓心,記為o;若i點轉彎方向為左轉,則令β=α-90,用同樣方法可確定圓心;
3)如果i+1點轉彎方向與i點相同,如圖2所示(都是右轉彎),則計算o點相對于i+1點的方位角,記作γ;令δ=γ+n,n=0,1,2,3…180,逐點計算以點o為射點,方位角為δ的射線與i點轉彎弧的交點,記為點s;逐點計算以i+1點為射點,方位角為δ的射線與i+1點轉彎弧的交點,記為點r,若直線rs與直線so垂直,則s點即為i點轉彎弧的退出點,記為p點;r點即為i+1點轉彎弧的進入點,記為q點;
4)如果i+1點轉彎方向與i點不同,如圖3所示(i點右轉,而i+1點左轉),則計算o點相對于i+1點的方位角,記作γ;令δ=γ+n,n=0,1,2,3…180,逐點計算以點o為射點,方位角為δ的射線與i點轉彎弧的交點,記為點s;逐點計算以i+1點為射點、方位角為δ+180度的射線與i+1點轉彎弧的交點,記為點r,若直線rs與直線so垂直,則s點即為i點轉彎弧的退出點,記為p點;r點即為i+1點轉彎弧的進入點,記為q點;
5)若i點轉彎方向為左轉,則可按相同方法求解轉彎弧參數。
情況三、向點轉彎到繞點轉彎弧參數求解
若i點是向點轉彎,i+1點是繞點轉彎,則i+1點轉彎弧的圓心即i+1點本身,而i點是i點轉彎弧的退出點,在求解過程中,需先確定i+1點轉彎弧的進入點,再確定i點轉彎弧的圓心位置。假設已知i點轉彎半徑為R1。
1)若i點轉彎方向為右轉,且i+1點轉彎方向也是右轉,如圖四所示。則:計算出i點相對于i+1點的方位角,記作α,令β=α+n,n=1,2,…90,逐點計算以i+1點為射點、方位角為β的射線與i+1點轉彎弧的交點,記為點p,若直線pi與直線p(i+1)垂直,則p點即為所要求解的i+1點轉彎弧的進入點;記i點相對于p點的方位角為γ,由于i點轉彎方向為右轉,所以相對于i點方位角為γ-90度,距離為R1的點即是i點轉彎弧的圓心,圖4中記為o點;
2)若i點轉彎方向為右轉,而i+1點轉彎方向為左轉,如圖五所示。則:計算出i點相對于i+1點的方位角,記作α,令β=α-n,n=1,2,…90,逐點計算以i+1點為射點、方位角為β的射線與i+1點轉彎弧的交點,記為點p,若直線pi與直線p(i+1)垂直,則p點即為所要求解的i+1點轉彎弧的進入點;記i點相對于p點的方位角為γ,由于i點轉彎方向為右轉,所以相對于i點方位角為γ-90度,距離為R1的點即是i點轉彎弧的圓心,圖5中記為o點;
3)若i點轉彎方向為左轉,可依據i+1點轉彎方向不同(左轉或右轉)分別按照1)、2)中的方法確定i點轉彎弧圓心o,只是點o相對于點i的方位角是γ+90。
5.其他轉彎方式從、到點組合的轉彎弧求解方法
其他類型轉彎方式的從、到點組合的轉彎弧參數求解可用以上三種之一的方法完成,只不過轉彎弧的圓心確定方式不同,如表1所列。
表1
可以理解的是,對本領域普通技術人員來說,可以根據本發明的技術方案及其發明構思加以等同替換或改變,而所有這些改變或替換都應屬于本發明所附的權利要求的保護范圍。