Cesium球心坐標與本地坐標系經緯轉換的數學原理—矩陣變換


之前整理過:《透析矩陣,由淺入深娓娓道來—高數-線性代數-矩陣》、《三維旋轉筆記:歐拉角/四元數/旋轉矩陣/軸角-記憶點整理》,這次轉載 FuckGIS的《Cesium之球心坐標與本地坐標》,算是線性代數在前端領域的的又一應用案例吧

球心坐標(ECEF)與本地坐標(NEU)

假如你來到一個陌生城市,你很可能需要問路、通常會告訴你向北走100米,右轉,向東走100米,理解起來很直觀。你給兒子買了一個地球儀,你從北京(39,115)轉到倫敦 (51,0),這個動作就可以分解為兩步:先轉到同一個經度(39,0),在轉到同一個維度(51,0)

這個例子體現了一個問題:不同的地理范圍下會使用更適合的坐標系。比如前者是局部的平面坐標,而后者是球面坐標。因此,同一個點相對不同的原點,具有不同的相對位置:既是地球上的一個經緯度,又是“出門右轉富士康”的這類的位置。如圖,藍色坐標系就是球心坐標,而綠色坐標系是以球面一點為原點的本地坐標系。准確講,就是該點對應球的切面和法線組成的空間。

4

 這自然引出了這個問題:如何從以球心為原點的球面坐標到以球面上任意一點為原點的局部坐標,坐標系之間的轉換,答案就是矩陣

764px-Transf_ECEF_&_ENU_Coord_Fig_1

坐標系的換算,其實就是坐標原點之間的轉換。比如發射導彈,首先瞄准,然后發射。

這里面就包括兩個動作:旋轉和平移。如上圖,旋轉分為兩步,經度(Z軸)旋轉和緯度(X軸)旋轉,分別是上圖中綠色和藍色兩個過程。

1

2

如上,假設該經緯度對應的笛卡爾坐標為(XYZ),這就是從球心原點到該點的平移,兩者結合得出矩陣的計算公式如下:

6

公式有了,我們把復雜的空間幾何問題轉為數值計算,便於抽象理解和計算機的處理。該如何理解矩陣背后的幾何意義呢?

矩陣的幾何意義

 7

如上是兩個二元一次方式組,不難推算,X = 1,Y=2是方程組的解。該方式式對應的矩陣形式如下:

8

對應的行優先對應的幾何意義如下,紅線代表方程式一,藍線代表方式式二,兩條直線相交於(1,2)。

1

Row Picture

      我們在看看列優先的幾何意義,此時矩陣分解為:

9

      我們來看看其對應的向量意義:

2

如上圖,分別是向量[1,2]和[-1,1],我們已經知道x和y的值分別為1,2。如上圖,我們把向量[-1,1]延長2倍,也就是[-2,2],然后將該向量平移到[1,2]點,也就是向量1的終點,如下圖,就是向量加的計算過程,[1,2] + [-1,1] *2 = [-1,4],幾何意義就是在該向量偏移量的累加。

3

Col Picture

      矩陣之所以能夠解決坐標轉換問題,正是因為其Col Picture所體現的向量意義。現在,我們再體會一下之前的矩陣,是否有一點親切。

10

優化

如上是矩陣公式推算和幾何意義的解釋。看上去是幾何問題,實際上是函數問題,這正是矩陣的價值所在。但函數問題也有一個缺點,特別是矩陣,計算量太大,占用內存也不低。大家在做數學題的時候應該都有過類似感覺,一個代數題好復雜,計算了半天,還容易犯錯,好不容易才得出答案。這時老師用幾何的思路來求解,一目了然,如穿越蟲洞般不費吹灰之力。

回到這個問題,我們把坐標轉換抽象成矩陣問題,對應的幾何意義就是該點的切面和法線。假設是一個圓,如下,圓心到該點就是其切面法線,這個向量很容易得出,通過點乘可以很容易的得到法線對應該點的垂線。

5

這時,把這個圓看成一個球,兩條黑線的叉乘就可以得出另一個垂線,這就是該點對應的NEU坐標的三個軸,是不是也很容易理解,而且只需要三個步驟,計算量很小:

  1. 減法求出Up向量

  2. 點乘求出East向量

  3. 叉乘求出North向量

這正是Cesium中提供的思路,對應Transforms.eastNorthUpToFixedFrame方法,我就不當搬運工了,Over

 

 

轉載本站文章《Cesium球心坐標與本地坐標系經緯轉換的數學原理—矩陣變換》,
請注明出處:https://www.zhoulujun.cn/html/theory/Mathematics/Geometry/8330.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM