計算幾何基礎提綱

2021-08-04 17:59:48 字數 3235 閱讀 7708

一、約定格式

a)         點、向量的表示

b)         封裝向量加減法、點積、叉積

double mult(struct point p1,struct point p2,struct point p3)  

double dis(struct point p1,struct point p2)

c) 線段——>(兩個點隔得很遠,取值很大)直線

矩形——>平面

二、點定位

i.               通過叉乘為零判斷點在直線上

b)         判斷點在三角形內

i.               三個小三角形面積和等於大三角形

c)         判斷點在多邊形內外

i.               方法一:掃瞄法

1.         水平向右作一射線(長線段)

2.         射線與多邊形有奇數個交點,則在多邊形內

3.         細節:點在邊上、射線交於頂點等

4.         適用於所有多邊形

ii.               方法二:叉乘判別法

1.         按照順時針給每條邊編號

2.         兩個向量:這條邊的第乙個端點連向第二個端點,判斷點和第乙個端點

3.         所有矢積為正

4.         適用於凸多邊形

iii.               方法三:角度和判別法

1.         內角和2pi,角度有正負

2.         注意精度和單位

3.         適用於所有多邊形

d)         判斷點在矩形和圓中,直接用簡易方法就行了

三、線段性質

a)         判斷兩線段相交(兩個向量相互叉乘為零:1.一條線段的起點/終點在另一條線段上,2兩條線段重合;兩個向量相互叉乘不全部小於零:兩條線段不相交;兩個向量相互叉乘全部小於零:兩條線段相交.)

i.               快速排斥實驗

ii.               通過i進行跨立實驗

b)         求線段交點

i.               方法一:先判斷相交,再使用解析幾何方法

ii.               方法二:叉積法(公式)

c)         判斷一組線段相交

i.               按座標把所有線段端點從小到大排序,設集合為s

ii.                       取乙個端點p.如果p是線段s的左端點,則插入序列t中

iii.                       1

iv.                       1

四、半平面求交

a)         增量法

b)         分治法

c)         排序增量法

解析幾何題綱

一、交點計算

a)         點到線段的最近點。設p(x1,y1)q(x2,y2)r(x0,y0),q 到pr最近點

i.               線段平行於座標軸

ii.               線段不平行於座標軸

iii.               以下各點都是處理下類似的細節就好

b)         點到圓的最近距離、最近點

c)         兩條共線線段的交點

d)         兩條不共線線段的交點

e)         線段與直線/圓的交點

二、面積

a)         三角形的面積:七類公式

1.已知三角形底a,高h,則 s=ah/2

2.已知三角形三邊a,b,c,則

(海**式)(p=(a+b+c)/2)

s=√[p(p-a)(p-b)(p-c)]

=(1/4)√[(a+b+c)(a+b-c)(a+c-b)(b+c-a)]

3.已知三角形兩邊a,b,這兩邊夾角c,則s=1/2 * absinc

4.設三角形三邊分別為a、b、c,內切圓半徑為r

則三角形面積=(a+b+c)r/2

5.設三角形三邊分別為a、b、c,外接圓半徑為r

則三角形面積=abc/4r

6.s△=1/2 *

| a b 1 |

| c d 1 |

| e f 1 |

| a b 1 |

| c d 1 | 為三階行列式,此三角形abc在平面直角座標系內a(a,b),b(c,d), c(e,f),這裡abc

| e f 1 |

選區取最好按逆時針順序從右上角開始取,因為這樣取得出的結果一般都為正值,如果不按這個規則取,可能會得到負值,但不要緊,只要取絕對值就可以了,不會影響三角形面積的大小!

7.海倫——秦九韶三角形中線面積公式:

s=√[(ma+mb+mc)*(mb+mc-ma)*(mc+ma-mb)*(ma+mb-mc)]/3

其中ma,mb,mc為三角形的中線長.

8.根據三角函式求面積:

s= ½ab sinc=2r² sinasinbsinc= a²sinbsinc/2sina

注:其中r為外切圓半徑。

9.根據向量求面積:

sδ)= ½√(|ab|*|ac|)²-(ab*ac)²

b)         多邊形的面積(簡單不自交):三角剖分

i.               內點與頂點

ii.               頂點與頂點

iii.               外點與頂點

三、與三角形有關的圓

a)         外接圓:

b)         內切圓:

四、對稱

a)         點對稱

b)         直線對成

五、平移和旋轉

六、最小圓覆蓋

a)         點增量

b)         三角形增量法

凸包部分(求用凸多邊形的包圍起來:1、叉乘為負o(n^2);2、用極座標表示個點,按角度排序,用棧維護,如果出現凹,彈出這個點)

一、概念

二、卷包裹法

三、graham-scan演算法

四、旋轉卡殼

剩餘的幾何板塊:

立體幾何(相交、投影、多面體、三維土包、最小球包涵、座標變換)

voronoi圖

三角刨分

計算幾何 幾何基礎

這章早在2017年寒假就在培訓的時候由來自清華的hta老師上過了 但是本蒟蒻那時候並不是懂的太多 所以這週ww老師又上了一遍 大概記錄一下 大概就跟高中必修4的平面向量差不多 有上過的應該都會 a x1,y1 b x2,y2 a b x1x2 y1y2 a b a b cos a,b 運用 若a與b...

計算幾何基礎

1 向量叉積 ab ac 0 ac在ab的 逆時針方向,否則順時針 0 a b c 共線 class point p q 為向量 a,b,c為點 p q x1 y2 x2 y1 p a b q c a 即 x1 x0 y2 y0 x2 x0 y1 y0 計算 ab ac 的叉積 double cor...

計算幾何基礎

凸包演算法 include includeusing namespace std const int n 5e5 11 int n,m struct point point int x,int y x x y y friend inline point operator const point a,...