C语言判断任意点是否在平行四边形中

在坐标系上,输入任意四点(x1,y1),(x2,y2),(x3,y3),(x4,y4)构造成一个四边形,然后再输入任意的(x,y),判断(x,y)是否在四边形上?我的想法是:先建立一个坐标(其实这个对于我还说有难度,初学者~~)然后输入四个点,在四个点中找出它们分别的极端状态,即,以最小(大)纵(横)坐标进行第一次对(x,y)检验排查,当不符合要求即输出错误。接着我想用(x,y)到端点的距离或到边界线段的距离作为判断的标准,但是却不知道应该如何排除图形外对称点的干扰,更重要的是不知道代码如何写~~请大神帮帮忙!!
2026年09月25日 23:35
有2个网友回答
网友(1):

在编程中 没必要也没可能建立真正的坐标系
流程:
输入四个点
根据四个点的坐标判断能否构成四边形,即是否有三点共线 完全数学题

通过坐标值大小 确定四个点的位置,即确定左上 右上 左下右下四个顶点
输入需要判断的坐标
通过左上右上坐标点 确定输入点在此线之下
通过左上左下坐标点 确定输入点在此线之右
通过左下右下坐标点 确定输入点在此线之上
通过右上右下坐标点 确定输入点在此线之左
如果上面四个判断都满足 那么确定该点在四边形内
如果有一个不满足 那么该点不在四边形内
中间的四个判断方法 完全是数学题
比如第一个判断 左上x1 y1 右上x2 y2 判断点x0 y0
求过x1 y1 和x2 y2解析式 并在x0值时求该函数上的y值 并与要判断的y0比较大小即可
另外三个类似

网友(2):

用四个点的坐标,建立两点式的直线方程,然后判断输入点的坐标代入方程是否等于0来解决。