怎样判断一个点是否在三角形内或者外

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:04:16
我需要 很详细 的 解题思路啊 我用来编程的啊 用方程的方法啊

下面的大哥 你说的 方程 我还是没搞懂啊 你用 普通的方式给我写出来好嘛 就是X+Y=0 这样的形式

设三角形三个点
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在BC的同侧
所以对于点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有二个0:在三角形的顶点上
6不可能出现3个0,或3个负数,或一个0两个负数的情况

这个fa就是函数方程,比如对于AB线段,对应的直线方程就是y=kx+t,其中k就是斜率,t就是直线和Y轴相交点的纵坐标。所以这个fa(x,y) = y-kx-t = 0 假如在三角形内部,那么三角形的C点和判断点D点就应该在AB的同侧,把C和D点坐标放入上述fa(x,y),要么同正,要么同负(或者有一个为0。为0肯定就在直线上了)。

把点的坐标代入三边直线的方程里啊

画图 看一下 就知道了
点到三角形三个顶点的最大距离必小于三角形外接圆直径,那么这个点在圆内
否则,圆外