用java编写三角形 如何判断一个点是否在三角形内?

如何判断一个点是否在三角形内?设三角形有三个点a(A1,A2),B(B1,B2),C(C1,C2)三边方程BC:FA(x,y)=0AC:FB(x,y)=0AB:FC(x,y)=0以BC为例,三角形中的

如何判断一个点是否在三角形内?

设三角形有三个点

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为例,三角形中的点必须与a点在同一侧

所以对于三角形中的d(x,y)

]点,首先是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)

这三个数的正性和负性

1三个数都是正的:三角形中的D

2至少有一个负的:三角形外的D

3有且只有一个0,另外两个是正的:在三角形的边上

4有且只有一个0,一个正的数和一个负的:在三角形的延长线上在三角形的边上,它也算在三角形的外面,因为满足2

5有两个零:在三个或三个负顶点的情况下,不可能有两个零或三个负顶点