計算幾何初步

2021-08-24 18:02:36 字數 1090 閱讀 6075

三個問題

1、給定的向量p0p1和p0p2,以p0為公共點,p0p1到p0p2是否構成右手螺旋(逆時針)?

2、給定兩條線段p0p1和p1p2,如果我們遍歷p0p1和p1p2,能否判斷p2在p0p1的左邊?

3、線段p0p1和p3p4相交嗎?

定義.  矩陣的行列式:

p1xp2 >0:p1以(0,0)為起點,在p2的順時針方向

p1xp2 <0: p1以(0,0)為起點,在p2的逆時針方向

p1xp2 =0:共線

以p0為公共點。 p0(x0,y0),p1(x1,y1),p2(x2,y2) 以p0為公共點 計算叉積  

(p1-p0)x(p2-p0)=(x1-x0)(y1-y0)-(x2-x0)(y2-y0)    

>0:左手螺旋(順時針)    

<0:右手螺旋(逆時針)    

=0:共線

用叉積(p1-p0)x(p2-p0)       >0:右邊 p1p2向左轉

<0:左邊 p1p2向右轉    =0:線上 

只要不是左轉 :(p1-p0)x(p2-p0) <=0  注意 p1 p2 順序

兩線段相交有下面兩個情況 如圖一兩線交叉 如圖二一線段的端點在另一條線段上

判斷ab和cd兩線段是否有交點: 同時滿足兩個條件:('x'表示叉積)

1.c點d點分別在ab的兩側.(向量(abxac)*(abxad)<=0)

2.a點和b點分別在cd兩側.(向量(cdxca)*(cdxcb)<=0)  

3.  向量(abxac)*(abxad)<0代表在直線兩側, =0代表在直線上。

計算幾何初步

終於開始入手計算幾何了呀 用了一天學了挺多知識了,打了一些模板題 比較簡單也就不一一枚舉了 這裡先放出來乙個可能有所錯漏的板子 會慢慢改動的 模板十分簡潔!include include include include include define db double using namespace...

計算幾何初步認識

一 點。點的座標a x1,y1 b x2,y2 二 向量。向量ab x2 x1,y2 y1 x3,y3 cd x4,y4 向量的模 ab sqrt x3 x3 y3 y3 即向量的長度。三 點積。點積的結果為乙個數值。數值計算方法ab cd x3 x4 y3 y4。幾何意義ab cd ab cd c...

計算幾何初步 三點順序

三點順序 給出不共線的三個點a,b,c的座標,推斷a,b,c是順時針給出的還是逆時針給出的?利用向量叉積推斷是逆時針還是順時針。設向量p x1 y1 q x2 y2 則p,q向量叉積定義為 p q x1 y2 x2 y1,也就是 p q sin a 即p,q張成的平行四邊形的面積。a的取值不同,會帶...