Hilbert曲線簡單介紹及生成演算法

2021-09-07 12:33:06 字數 808 閱讀 6259

hilbert曲線

hilbert曲線是一種填充曲線,相似的填充曲線還包含z曲線。格雷碼等其它方法。hilbert曲線根據自身空間填充曲線的特性,能夠線性地貫穿二維或者更高維度每乙個離散單元。而且只穿過一次,並對每乙個離散單元進行線性排序和編碼。該編碼作為該單元的唯一標識。

空間填充曲線能夠將高維空間中沒有良好順序的資料對映到一維空間,經過這樣的編碼方式,空間上相鄰的物件會鄰近儲存在一塊,能夠降低io的時間,提高記憶體中資料處理效率。

hilbert曲線例如以下圖所看到的:

hilbert作用很大。除了上面講到的作為一種基於網格的空間索引外,還能夠用作影象資料的混淆或者加密。

hilbert曲線生成的關鍵是怎樣計算每乙個離散單元所相應的編碼以及根據編碼獲得離散單元所處的位置。**例如以下:

void rot(int n, int *x, int *y, int rx, int ry);

//xy座標到hilbert**轉換

int xy2d (int n, int x, int y)

return d;

}//hilbert**到xy座標

void d2xy(int n, int d, int *x, int *y)

{ int rx, ry, s, t=d;

*x = *y = 0;

for (s=1; s

參考文獻:

地理資訊系統演算法基礎

Nginx簡單介紹及安裝

nginx簡介 nginx是一款高效能的http和反向 伺服器,主要有以下優點 nginx作為 伺服器主要用來實現反向 和負載均衡。要理解反想 首先介紹一下正向 如下圖正向 是 客戶端,服務端不知道真實的客戶端是誰,客戶端請求的服務都被 伺服器代替來請求。反向 則是 的服務端,以 伺服器來接受int...

Eigen介紹及簡單使用

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!eigen是可以用來進行線性代數 矩陣 向量操作等運算的c 庫,它裡面包含了很多演算法。它的license是mpl2。它支援多平台。eigen採用原始碼的方式提供給使用者使用,在使用時只需要包含eigen的標頭檔案即可進行使用。之所以採用這種方式,...

HTML簡單介紹及舉例

超文字標記語言 hyper text markup language,簡稱html 是為 網頁建立和其他可在網頁瀏覽器中看到的資訊 設計的一種標記語言。html被用來結構化資訊,也可用來在一定程度上描寫敘述文件的外觀和語義。它是通向web技術世界的鑰匙。1 html 簡單介紹 html是用來描寫敘述...