演算法設計與分析之計算幾何

2021-10-01 22:32:58 字數 1071 閱讀 1121

對於兩個點表示的向量p1和p2(起點均為原點(0,0)),向量加法定義為:p1+p2=(p1.x+p2.x,p1.y+p2.y),其結果仍為乙個向量。

向量加法一般可用平行四邊形法則,如下圖所示,兩個向量為p1(2,-1),p2(3,3),則p3=p1+p2=(5,2)。

演算法思路:

point operator +

(const point &p1,const point &p2)

//過載+運算子

向量減法是向量加法的逆運算,乙個向量減去另乙個向量,等於加上那個向量的負向量,即:

p1-p2=p1+(-p2)=(p1.x-p2.x,p1.y-p2.y)

其結果仍為乙個向量。

演算法思路

point operator -

(const point &p1,const point &p2)

//過載-運算子

兩個向量p1和p2的點積(或內積)定義為

p1·p2=|p1|×|p2|×cos(a)=p1.x×p2.x+p1.y×p2.y

其結果是乙個標量。

其中,向量p的長度|p|=

a表示兩個向量的夾角。

演算法思路:

double

dot(point p1,point p2)

//兩個向量的點積

若p1·p2>0時,向量p1和p2之間的夾角為銳角。

若p1·p2=0時,向量p1和p2垂直,即夾角為直角。

若p1·p2<0時,向量p1和p2之間的夾角為鈍角。

double

length

(point &p)

//求向量長度

演算法導論之計算幾何學

所屬專欄 演算法導論專欄 計算幾何學是電腦科學的乙個分支,專門研究集合問題的解決的演算法。計算幾何學的問題一般輸入關於一組集合物件的描述,如一組點 一組線段 輸出是對問題的回答,如直線是否相交。三維空間和高維空間很難視覺化,這裡計算幾何學主要基於二維平面,輸入物件用一組點來表示,其中每個pi xi,...

演算法學習筆記之計算幾何 線段

本markdown編輯器使用stackedit修改而來,用它寫部落格,將會帶來全新的體驗哦 markdown 是一種輕量級標記語言,它允許人們使用易讀易寫的純文字格式編寫文件,然後轉換成格式豐富的html頁面。維基百科 使用簡單的符號標識不同的標題,將某些文字標記為粗體或者斜體,建立乙個鏈結等,詳細...

計算幾何與計算幾何與

博主這裡曾經學過計算幾何 下文簡稱jj 所以沒有證明或者說明某些演算法,不適合初學者食用 用一道例題及黃學長的 來理解 黃學長 include include include include include include include include include include define...