zxj_76 发表于 2003-1-13 14:05:00

[原创] 请教:如何判断一坐标点在四边形内还是在四边形外?

已知条件:四边形的顶点坐标,另一坐标点的坐标。
判    断:该点和四边形的关系,内,外还是在边上?

leeyeafu 发表于 2003-1-13 14:31:00

在这给个算法


如上图,要判断点E是否在四边形ABCD内部或外部或在某条边上。
可以判断点E是否在三角形ABC及三角形BCD内。若点E在三角形ABC内部,则三角形ABE的面积+三角形BCE的面积+三角形ACE的面积=三角形ABC的面积。反之则点E在三角形ABC外部。若点E的三角形的某条边上,则相应面积为零。根据点E与三角形ABC和BCD的位置关系不难得出点E与四边形ABCD的位置关系。
附上三角形面积计算:
设a,b,c为三角形三条边长,令s=(a+b+c)/2,则面积为
sqrt(s(s-a)(s-b)(s-c))

CAD菜鸟 发表于 2003-1-13 15:48:00

千万要注意:

leeyeafu大虾的算法非常好,但千万要注意一点:即E点在BC线上的情况。当E点在BC线上,且不是点B或C时,E点应在四边形内。不能因为按说明“若点E在三角形的某条边上,则相应面积为零”,得出点E在两三角形的边上,而判断出点E在四边形的边上。

efan2000 发表于 2003-1-13 19:25:00

Re: 判断点的位置

在CAD基础技术中,有一种算法是用射线法来判断一点与多边形的位置,可以参考一下。对于四边形更简单,如果点与四边形的交点为奇数,那么位于四边形的内部,如果交点为偶数,那么位于外部,在四边形的边上的算法就是依次判断点在直线上的问题。

ysf505 发表于 2003-1-13 19:50:00

如何判断一坐标点在四边形内还是在四边形外?

《电脑爱好者》发表过有关点与多边形关系的擂台比赛文章。

leeyeafu 发表于 2003-1-14 07:45:00

要注意的还不止这些

要保证BC边确是四边形的对角线,另外还要注意四边形是凹四边形的情况。
另外,ysf505朋友是否可以介绍《电脑爱好者》的获奖算法?

zxj_76 发表于 2003-1-14 11:59:00

非常感谢,我明白了?

zhhboo 发表于 2003-1-17 11:50:00

请教!!

请教,对于“射线法”还是有些不解,比如:如何用将要判断的那个点的坐标表示成射线?请帮忙解答,谢谢!

97jr 发表于 2003-1-17 17:23:00

那一年的电脑爱好者呢

页: [1]
查看完整版本: [原创] 请教:如何判断一坐标点在四边形内还是在四边形外?