2、acos(-1)角度制和弧度制的轉(zhuǎn)換,C/C++中的三角函數(shù)均為弧度制盡量少用除法,開(kāi)方,三角函數(shù),容易失去精度。用除法時(shí)注意除數(shù)不為0輸出的時(shí)候要小心-0.00000,比如a=-0.0000001,printf(“%.5lf”,a);向量及其運(yùn)算計(jì)算幾何中經(jīng)常使用向量,而且基本上都是二維的,下面用αβγ代表三個(gè)向量α=(x[0],y[0])β=(x[1],y[1])γ=(x[2],y[2])某些題目需要經(jīng)常使用向量運(yùn)算,因此對(duì)于這類(lèi)問(wèn)題最好建立構(gòu)造類(lèi)型或者類(lèi)來(lái)表示向量,并將向量之間的運(yùn)算進(jìn)行重載一般需要重載加法,減法,和向量乘法向量及其運(yùn)算structp
3、oint{//構(gòu)造點(diǎn)的數(shù)據(jù)類(lèi)型,也可作向量使用doublex;doubley;}v1,v2;pointoperator+(pointp1,pointp2);doubleoperator*(pointp1,pointp2);向量及其運(yùn)算向量有兩種乘法,內(nèi)積(數(shù)量積,點(diǎn)積)和外積(向量積,叉積),一般是要根據(jù)題目需要選擇其中一個(gè)重載,多數(shù)情況是重載外積,其中內(nèi)積α·β=x[0]*x[1]+y[0]*y[1]外積α×β=x[0]*y[1]–x[1]*y[0]=向量及其運(yùn)算內(nèi)積的幾何意義:α在β的投影α’與β的長(zhǎng)度乘積外積的幾何意義:α和β所張成的平行四邊形的有向
4、面積外積在計(jì)算幾何的題目當(dāng)中經(jīng)常使用外積的應(yīng)用判斷外積的符號(hào),右手定則如圖,α×β<0,β×α>0如果α×β==0則等價(jià)于兩個(gè)向量共線(同向或反向),可以用此判斷三點(diǎn)共線問(wèn)題。當(dāng)然,這里的==0在實(shí)際編程的時(shí)候要用一個(gè)精度來(lái)控制外積的應(yīng)用考察右圖有向線段P1P2“向右拐”得到P2P3有向線段P1P2“向左拐”得到P2P4可以利用外積判斷“拐向”,這在求凸包時(shí)會(huì)用到外積的應(yīng)用利用外積求三角形面積已知三個(gè)頂點(diǎn)坐標(biāo)為(a[0],b[0]),(a[1],b[1]),(a[2],b[2]),則三角形面積為注意別忘記取絕對(duì)值,這里利用面積是否為0也可以考察三點(diǎn)
5、共線問(wèn)題這個(gè)方法求面積比海倫公式或者其他方法要好外積的應(yīng)用由求三角形面積的方法可以推廣求凸多邊形面積如圖,從一固定點(diǎn)出發(fā),向其他各點(diǎn)引輔助線,這樣就分割成了若干個(gè)三角形,利用上式求出每個(gè)三角形的面積再相加即可。整點(diǎn)多邊形整點(diǎn)多邊形是指頂點(diǎn)的橫縱坐標(biāo)均為整數(shù)由外積導(dǎo)出的面積計(jì)算公式可以看出,整點(diǎn)多邊形的面積或?yàn)檎麛?shù),或?yàn)檎麛?shù)/2.Pick公式:整點(diǎn)多邊形的面積=內(nèi)部整點(diǎn)個(gè)數(shù)+邊上的整點(diǎn)個(gè)數(shù)/2-1.NKOJ1159:Triangle計(jì)算幾何中的公式有不少,需要積累三角形的一些性質(zhì)如何判斷點(diǎn)是否在三角形內(nèi)部?此點(diǎn)與三角形三個(gè)頂點(diǎn)相連,出現(xiàn)三個(gè)三角形,如果這三個(gè)
6、三角形的面積之和等于原三角形面積,那么該點(diǎn)在內(nèi)部推廣:可用來(lái)判斷點(diǎn)是否在凸多邊形內(nèi)部思考:如何判斷點(diǎn)是否在一般多邊形內(nèi)部?三角形的心外心:外接圓圓心,三條中垂線交點(diǎn)內(nèi)心:內(nèi)接圓圓心,三條角平分線交點(diǎn)重心:三條中線交點(diǎn),注意其物理性質(zhì)垂心:三條垂線焦點(diǎn)旁心:一個(gè)外交平分線與另外兩個(gè)內(nèi)角平分線交點(diǎn)NKOJ1257:EXOCENTEROFATRIANGLE判斷點(diǎn)在直線上利用三點(diǎn)共線的等價(jià)條件α×β==0直線上取兩不同點(diǎn)P1,P2,若點(diǎn)P在直線上,則fabs((P1-P)×(P2-P))7、積是否8、min(x3,x4)<=max(x1,x2)&&min(y1,y