用java編寫(xiě)三角形 如何判斷一個(gè)點(diǎn)是否在三角形內(nèi)?
如何判斷一個(gè)點(diǎn)是否在三角形內(nèi)?設(shè)三角形有三個(gè)點(diǎn)a(A1,A2),B(B1,B2),C(C1,C2)三邊方程BC:FA(x,y)=0AC:FB(x,y)=0AB:FC(x,y)=0以BC為例,三角形中的
如何判斷一個(gè)點(diǎn)是否在三角形內(nèi)?
設(shè)三角形有三個(gè)點(diǎn)
a(A1,A2),B(B1,B2),C(C1,C2)
三邊方程
BC:FA(x,y)=0
AC:FB(x,y)=0
AB:FC(x,y)=0
以BC為例,三角形中的點(diǎn)必須與a點(diǎn)在同一側(cè)
所以對(duì)于三角形中的d(x,y)
]點(diǎn),首先是FA(x,y) *fa(A1,A2)>0
其他邊是相同的
所以只要我們比較
fa(x,y)*fa(A1,A2)
FB(x,y)*FB(B1,B2)
FC(x,y)*FC(C1,C2)
這三個(gè)數(shù)的正性和負(fù)性
1三個(gè)數(shù)都是正的:三角形中的D
2至少有一個(gè)負(fù)的:三角形外的D
3有且只有一個(gè)0,另外兩個(gè)是正的:在三角形的邊上
4有且只有一個(gè)0,一個(gè)正的數(shù)和一個(gè)負(fù)的:在三角形的延長(zhǎng)線上在三角形的邊上,它也算在三角形的外面,因?yàn)闈M足2
5有兩個(gè)零:在三個(gè)或三個(gè)負(fù)頂點(diǎn)的情況下,不可能有兩個(gè)零或三個(gè)負(fù)頂點(diǎn)