用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,过程对应的限制范围,然后再分别通过得出值进行判断是否超过既定范围~~~
大神,请您帮帮忙啊!!
展开
 我来答
百度网友3837d6a
2013-11-26 · TA获得超过228个赞
知道小有建树答主
回答量:199
采纳率:73%
帮助的人:129万
展开全部

第二个函数没有必要。


下面谈如何判断点在四边形内部:


假设四边形的四个点分别为A,B,C,D

假设第五个点为O,


你只要求出四边形的面积以及三角形AOB,BOC,COD,DOA的面积

如果四边形的面积与后面四个三角形的面积的和相等,且后面四个三角形的面积皆不为零,则O点在四边形内部。


提示一下:

  1. 四边形的面积=三角形ABC的面积+三角形CDA的面积

  2. 三角形面积求法:设a,b,c为三角形三条边长,令s=(a+b+c)/2,则面积为:根下(s(s-a)(s-b)(s-c))

  3. 四个点能否围成四边形,也可以通过面积法来求得,如果三角形ABC的面积和三角形CDA的面积任意一个为零,则不能围成四边形

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式