一、約定格式
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,...