用C语言判断某点是否存在于一个四边形内
在坐标系上,输入任意四点(x1,y1),(x2,y2),(x3,y3),(x4,y4)构造成一个四边形,然后再输入任意的(x0,y0),判断(x,y)是否在四边形上?想很...
在坐标系上,输入任意四点(x1,y1),(x2,y2),(x3,y3),(x4,y4)构造成一个四边形,然后再输入任意的(x0,y0),判断(x,y)是否在四边形上?
想很久~~~,我的构想是建立三个子函数:
第一个子函数是用来判断随机输入的这四个点是否能构成一个四边形,若不能构成的话则重新输入四个点的值;
第二个子函数是用来分别判断这四个点的位置,即要输出这四个点分别所对应的是左(右)上(下);
第三个子函数是用来判断(x0,y0)是否在这一个四边形里面;
对于第一个子函数没有问题,第二个子函数就不知道如何去判断了(虽然有初步的想法,但不知道如何去写出代码),第三个子函数我想分别建立四边形四条边的方程,分别代入x0或y0,过程对应的限制范围,然后再分别通过得出值进行判断是否超过既定范围~~~
大神,请您帮帮忙啊!! 展开
想很久~~~,我的构想是建立三个子函数:
第一个子函数是用来判断随机输入的这四个点是否能构成一个四边形,若不能构成的话则重新输入四个点的值;
第二个子函数是用来分别判断这四个点的位置,即要输出这四个点分别所对应的是左(右)上(下);
第三个子函数是用来判断(x0,y0)是否在这一个四边形里面;
对于第一个子函数没有问题,第二个子函数就不知道如何去判断了(虽然有初步的想法,但不知道如何去写出代码),第三个子函数我想分别建立四边形四条边的方程,分别代入x0或y0,过程对应的限制范围,然后再分别通过得出值进行判断是否超过既定范围~~~
大神,请您帮帮忙啊!! 展开
1个回答
展开全部
第二个函数没有必要。
下面谈如何判断点在四边形内部:
假设四边形的四个点分别为A,B,C,D
假设第五个点为O,
你只要求出四边形的面积以及三角形AOB,BOC,COD,DOA的面积
如果四边形的面积与后面四个三角形的面积的和相等,且后面四个三角形的面积皆不为零,则O点在四边形内部。
提示一下:
四边形的面积=三角形ABC的面积+三角形CDA的面积
三角形面积求法:设a,b,c为三角形三条边长,令s=(a+b+c)/2,则面积为:根下(s(s-a)(s-b)(s-c))
四个点能否围成四边形,也可以通过面积法来求得,如果三角形ABC的面积和三角形CDA的面积任意一个为零,则不能围成四边形
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询