GIS演算法 向量(陣列基礎 程式設計基礎)

2021-08-26 17:38:23 字數 1875 閱讀 5631

在程式設計中的應用

【有向線段】有一條線段的端點是有先後次序之分的,這條線段即有向線段(directed segment)

【向量】有限線段p1p2的起點p1在座標原點,把它稱為向量p2

二維向量p=(x1,y1),q=(x2,y2)

【向量加法】p+q=(x1+x2, y1+y2)

【向量減法】p-q=(x1-x2, y1-y2)

顯然有:

p+q=q+p

p-q=-(q-p)

a,b和c粗體字,表示向量

名稱標積/內積/數量積/點積

矢積/外積/向量積/叉積

公式公式一:a·b = ax*bx + ay*by + az*bz

公式二:a·b = |a|*|b|*cosθ公式一:c=axb = (ax,ay,az)x(bx,by,bz) = (aybz - azby, azbx - axbz, axby - byax)

c的方向遵守右手定則

公式二:|axb| = |a||b|sinθ

幾何意義

向量a在向量b方向上的投影與向量b的模的乘積

c的模等於以ab為鄰邊的平行四邊形的面積

運算結果的區別

標量(常用於物理)/數量(常用於數學)

向量(常用於物理)/向量(常用於數學)

常見應用

1. 計算垂直於乙個平面、三角形、多邊形的向量

2. 判斷三角麵片的朝向

3. 計算多邊形的面積

a·b = ax*bx + ay*by + az*bza·b = |a|*|b|*cosθ; (可推出^a·^b = cosθ)

【性質】

點積可結合標量相乘。如:設k為標量k(a·b)= a·(kb) = (ka).b點積可以結合向量的加減法。如:a·(b+c) = a·b + a·c; a·(b-c) = a·b + a·-c向量自己和自己的點積等於該向量的模的平方。如:v·v = vxvx + vyvy + vzvz = |v|²兩個單位向量的點積等於他們夾角的余弦值。如^a·^b = cosθ利用性質四可以計算出夾角的度數(當度數為0~180之間)。如:θ = arcos(^a·^b),其中arcos是反余弦操作

axb = (ax,ay,az)x(bx,by,bz) = (aybz - azby, azbx - axbz, axby - byax)|axb| = |a||b|sinθ

【axb≠bxa,即,叉積不滿足交換律;但它滿足反交換律 axb = -(bxa);不滿足結合律(axb)xc ≠ ax(bxc);】

【舉例】二維向量p=(x1,y1),q=(x2,y2)

【向量叉積】

原點(0,0),p,q和pq組成的平行四邊形帶符號的面積

p×q=x1y2-x2y1,結果是乙個標量

顯然有:

p×q=-(q×p)

p×(-q)=-(p×q)

p×q>0,則p在q的順時針方向

p×q<0,則p在q的逆時針方向

p×q=0,則p和q共線,但可能同向也可能反向

程式設計中常用向量叉積來求面積和相對位置

gis 向量切片讀取 GIS向量切片演算法

structtilestructure public classvectortiletool listtiles publicvectortiletool public bool seprateshplayer string sourcepath,string resultfolder,intlev...

GIS演算法基礎 左轉演算法拓撲生成

gis演算法基礎 左轉演算法拓撲生成 gis演算法基礎 向量資料壓縮道格拉斯普克壓縮演算法 非遞迴實現 本人應用js中的canvas對演算法結果進行視覺化驗證,在演算法說明及實現中繪製驗證部分省略 拓撲相關基本概念 拓撲空間關係是一種對空間結構進行明確定義的數學方法。具有拓撲關係的向量資料結構就是拓...

GIS演算法 柵格與向量轉換

為了將柵格資料分析的結果,通過向量繪圖裝置輸出 資料壓縮的需要 將大量的面狀柵格資料轉換為由少量資料表示的多邊形邊界 主要目的 將自動掃瞄器獲取的柵格資料加入向量形式的資料庫 多邊形邊界提取 採用高通濾波將柵格影象二值化或以特殊值標識邊界點 拓撲關係生成 對於向量表示的邊界弧段資料,判斷其與原圖上各...