Cesium之球心坐标与本地坐标
1球心坐標(biāo)(ECEF)與本地坐標(biāo)(NEU)
假如你來到一個(gè)陌生城市,你很可能需要問路、通常會告訴你向北走100米,右轉(zhuǎn),向東走100米,理解起來很直觀。你給兒子買了一個(gè)地球儀,你從北京(39,115)轉(zhuǎn)到倫敦 (51,0),這個(gè)動作就可以分解為兩步:先轉(zhuǎn)到同一個(gè)經(jīng)度(39,0),在轉(zhuǎn)到同一個(gè)維度(51,0)
這個(gè)例子體現(xiàn)了一個(gè)問題:不同的地理范圍下會使用更適合的坐標(biāo)系。比如前者是局部的平面坐標(biāo),而后者是球面坐標(biāo)。因此,同一個(gè)點(diǎn)相對不同的原點(diǎn),具有不同的相對位置:既是地球上的一個(gè)經(jīng)緯度,又是“出門右轉(zhuǎn)富士康”的這類的位置。如圖,藍(lán)色坐標(biāo)系就是球心坐標(biāo),而綠色坐標(biāo)系是以球面一點(diǎn)為原點(diǎn)的本地坐標(biāo)系。準(zhǔn)確講,就是該點(diǎn)對應(yīng)球的切面和法線組成的空間。
這自然引出了這個(gè)問題:如何從以球心為原點(diǎn)的球面坐標(biāo)到以球面上任意一點(diǎn)為原點(diǎn)的局部坐標(biāo),坐標(biāo)系之間的轉(zhuǎn)換,答案就是矩陣。
坐標(biāo)系的換算,其實(shí)就是坐標(biāo)原點(diǎn)之間的轉(zhuǎn)換。比如發(fā)射導(dǎo)彈,首先瞄準(zhǔn),然后發(fā)射,這里面就包括兩個(gè)動作:旋轉(zhuǎn)和平移。如上圖,旋轉(zhuǎn)分為兩步,經(jīng)度(Z軸)旋轉(zhuǎn)和緯度(X軸)旋轉(zhuǎn),分別是上圖中綠色和藍(lán)色兩個(gè)過程。
如上,假設(shè)該經(jīng)緯度對應(yīng)的笛卡爾坐標(biāo)為(XYZ),這就是從球心原點(diǎn)到該點(diǎn)的平移,兩者結(jié)合得出矩陣的計(jì)算公式如下:
公式有了,我們把復(fù)雜的空間幾何問題轉(zhuǎn)為數(shù)值計(jì)算,便于抽象理解和計(jì)算機(jī)的處理。該如何理解矩陣背后的幾何意義呢?
2矩陣的幾何意義
如上是兩個(gè)二元一次方式組,不難推算,X = 1,Y=2是方程組的解。該方式式對應(yīng)的矩陣形式如下:
對應(yīng)的行優(yōu)先對應(yīng)的幾何意義如下,紅線代表方程式一,藍(lán)線代表方式式二,兩條直線相交于(1,2)。
Row Picture
我們在看看列優(yōu)先的幾何意義,此時(shí)矩陣分解為:
我們來看看其對應(yīng)的向量意義:
如上圖,分別是向量[1,2]和[-1,1],我們已經(jīng)知道x和y的值分別為1,2。如上圖,我們把向量[-1,1]延長2倍,也就是[-2,2],然后將該向量平移到[1,2]點(diǎn),也就是向量1的終點(diǎn),如下圖,就是向量加的計(jì)算過程,[1,2] + [-1,1] *2 = [-1,4],幾何意義就是在該向量偏移量的累加。
Col Picture
矩陣之所以能夠解決坐標(biāo)轉(zhuǎn)換問題,正是因?yàn)槠銫ol Picture所體現(xiàn)的向量意義。現(xiàn)在,我們再體會一下之前的矩陣,是否有一點(diǎn)親切。
3優(yōu)化
如上是矩陣公式推算和幾何意義的解釋??瓷先ナ菐缀螁栴},實(shí)際上是函數(shù)問題,這正是矩陣的價(jià)值所在。但函數(shù)問題也有一個(gè)缺點(diǎn),特別是矩陣,計(jì)算量太大,占用內(nèi)存也不低。大家在做數(shù)學(xué)題的時(shí)候應(yīng)該都有過類似感覺,一個(gè)代數(shù)題好復(fù)雜,計(jì)算了半天,還容易犯錯,好不容易才得出答案。這時(shí)老師用幾何的思路來求解,一目了然,如穿越蟲洞般不費(fèi)吹灰之力。
回到這個(gè)問題,我們把坐標(biāo)轉(zhuǎn)換抽象成矩陣問題,對應(yīng)的幾何意義就是該點(diǎn)的切面和法線。
假設(shè)是一個(gè)圓,如下,圓心到該點(diǎn)就是其切面法線,這個(gè)向量很容易得出,通過點(diǎn)乘可以很容易的得到法線對應(yīng)該點(diǎn)的垂線。
這時(shí),把這個(gè)圓看成一個(gè)球,兩條黑線的叉乘就可以得出另一個(gè)垂線,這就是該點(diǎn)對應(yīng)的NEU坐標(biāo)的三個(gè)軸,是不是也很容易理解,而且只需要三個(gè)步驟,計(jì)算量很?。?
減法求出Up向量
點(diǎn)乘求出East向量
叉乘求出North向量
這正是Cesium中提供的思路,對應(yīng)Transforms.eastNorthUpToFixedFrame方法,我就不當(dāng)搬運(yùn)工了,Over
總結(jié)
以上是生活随笔為你收集整理的Cesium之球心坐标与本地坐标的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 命令行 蓝牙_Ubuntu使用BlueZ
- 下一篇: linux下写脚本时-gt或-lt是什么