在坐标系中确定一个点是否在三角形中
发布网友
发布时间:2022-04-23 20:27
我来回答
共5个回答
热心网友
时间:2023-10-09 01:18
设三角形三个点
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两个负数的情况。
热心网友
时间:2023-10-09 01:19
过AB的直线方程为 (x-x1)(y2-y1) - (y-y1)(x2-x1) = 0,
若点(x,y)在三角形ABC内,则点(x,y)和点C位于直线AB的同侧。
也即,
[(x-x1)(y2-y1) - (y-y1)(x2-x1)][(x3-x1)(y2-y1) - (y3-y1)(x2-x1)] > 0 ...(1)
同理,有,
[(x-x1)(y3-y1) - (y-y1)(x3-x1)][(x2-x1)(y3-y1) - (y2-y1)(x3-x1)] > 0 ...(2)
[(x-x2)(y3-y2) - (y-y2)(x3-x2)][(x1-x2)(y3-y2) - (y1-y2)(x3-x2)] > 0 ...(3)
同时满足(1),(2),(3)的点(x,y)才位于三角形ABC的内部。
热心网友
时间:2023-10-09 01:19
这个题有趣有用,在计算机编程解决实际问题时会用到,我考虑后给一种方法十分不成熟,仅供参考,在直角坐标系中,首先找到A,B,C三点的横纵坐标的最小与最大值,如果给的点P(x,y),x小于横坐标的最小值或大于最大值,y小于纵坐标的最小值或大于最大值,P点均不会在三角形内部,否则将x代入三条直线方程计算出三个纵坐标值y1,y2,y3(一个直线方程一个),当y比这3个值都大,或比这3个值都小,则P点也不会在在三角形内部,如果y值介于某二值之间,不失一般性,设y1<y<y2,此时找出y1,y2所对应直线的端点横坐标,需判断x是否小于两端点横坐标的最大值,大于两端点横坐标的最小值,如果是,P点在三角形内部,否则不在.不知对否,希望讨论.
热心网友
时间:2023-10-09 01:20
给定三角形的三个顶点A,B,C的坐标值,确定任意一个点是否在三角形内部,如下
过AB的直线方程为 (x-x1)(y2-y1) - (y-y1)(x2-x1) = 0,
若点(x,y)在三角形ABC内,则点(x,y)和点C位于直线AB的同侧。
也即,
[(x-x1)(y2-y1) - (y-y1)(x2-x1)][(x3-x1)(y2-y1) - (y3-y1)(x2-x1)] > 0 ...(1)
同理,有,
[(x-x1)(y3-y1) - (y-y1)(x3-x1)][(x2-x1)(y3-y1) - (y2-y1)(x3-x1)] > 0 ...(2)
[(x-x2)(y3-y2) - (y-y2)(x3-x2)][(x1-x2)(y3-y2) - (y1-y2)(x3-x2)] > 0 ...(3)
同时满足(1),(2),(3)的点(x,y)才位于三角形ABC的内部。
热心网友
时间:2023-10-09 01:20
设任意点为P,充要条件为
max{PA,PB,PC}<min{AB,BC,CA}
即P点到三角形三个顶点的距离均小于三角形三边长
之后过程解析即可。