2016 - 2024

感恩一路有你

判断一个点是否在多边形内部 如何判断一个点是否在一个多边形内?

浏览量:2098 时间:2021-04-05 17:12:02 作者:admin

如何判断一个点是否在一个多边形内?

假设多边形的坐标存储在一个数组中。首先,我们需要得到阵列在横坐标和纵坐标上的最大值和最小值,并根据这四个点计算出一个四边形。首先要判断目标坐标点是否在四边形内。如果在四边形之外,我们可以跳过更复杂的计算,直接返回false。

//我不能通过这个测试。。。直接返回false;

下一步是核心算法部分:

首先,参数nvert表示多边形的几个点。浮点数testx和testy分别表示待测点的横坐标和纵坐标,*vertx和*verty分别表示多边形横坐标和纵坐标数组的第一个地址。

我们注意到每个计算都涉及两个相邻点和要测试的点,然后考虑两个问题:verty[J]<testy< verty[i

]2?如果你不明白If语句的后半部分,请在纸上写下I和j之间的斜率公式。在初中阶段你需要运用一点解析几何和不等式的知识。对于大多数代码农民来说,这是小菜一碟。

速求c语言编程,给定n个点的坐标,这n个点依次围成一闭合多边形,再给一点(x,y),判断它是否在多边形中?

程序代码如下(直接应用函数pnpoly):

int pnpoly(int nvert,float*vertx,float*verty,float testx,float testy)

{

int i,J,C=0

for(i=0,J=nvert-1,i

if((verty[i]>testy)!=(verty[J]>testy))&

](testx

C=!C

}

]返回C

}

]参数说明:

nvert:多边形的顶点数

vertx,Verty:顶点的X和Y坐标数组

testx,testy:被测点的X和Y坐标

扩展数据

]判断一个点是否在多边形内最简单的方法是使用射线法,因为它可以应用于所有类型的多边形,而不考虑特殊情况,而且速度相对较快。

该算法的思想非常简单:在多边形外的任意点向P(x,y)绘制一条虚拟光线,然后计算光线与多边形边缘相交的次数。如果阶数是偶数,则P(x,y)在多边形之外。如果是奇数,P(x,y)在多边形内。

怎么利用多边形顶点坐标求多边形面积?

第31章,第1节,问题8。只要是边不相交的简单多边形,即不仅是凸多边形,而且是各种奇形凹多边形,就可以用格林公式计算面积。格林公式:如果函数P(x,y),q(x,y)在由一条或多条光滑曲线围成的封闭区域D内是连续的,且具有连续的一阶偏导数,则l是区域D的边界曲线,取正方向。边不相交的简单多边形是一个由多条线段包围的闭合区域,因此可以使用格林公式。设P=0,q=x,面积s=i点的坐标为,i点的坐标为,则线段的参数表达式为,so,so,面积。上面的公式可以计算任何简单多边形的面积,包括三角形、四边形和六边形。Python实现:

判断一个点是否在多边形内部 判断点是否在多边形内算法 点是否在多边形内算法

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。