Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以二进制表示的交叉数/绕组数多边形测试(Python)_Python_Vector_Geometry_Point In Polygon - Fatal编程技术网

以二进制表示的交叉数/绕组数多边形测试(Python)

以二进制表示的交叉数/绕组数多边形测试(Python),python,vector,geometry,point-in-polygon,Python,Vector,Geometry,Point In Polygon,我试图实现缠绕数或交叉数测试,主要围绕布尔运算构建。 布尔需求是由于底层数据集的方法和效率,使得将变量委托给布尔值以外的变量进行计数是次优的 交叉数似乎最容易实现(我认为),因为它本质上是二进制的(偶数(0)与奇数(1)),其中每侧交叉数测试的结果可以与前面的结果进行异或,例如在下面给出的代码中,xyz是我们的评估坐标。代码从结尾处进行了改编 #原始点: pts=[[100100]、[200200]、[300100]、[400300]、[300400]、[200300]、[100100]] #极

我试图实现缠绕数或交叉数测试,主要围绕布尔运算构建。 布尔需求是由于底层数据集的方法和效率,使得将变量委托给布尔值以外的变量进行计数是次优的

交叉数似乎最容易实现(我认为),因为它本质上是二进制的(偶数(0)与奇数(1)),其中每侧交叉数测试的结果可以与前面的结果进行异或,例如在下面给出的代码中,
xyz
是我们的评估坐标。代码从结尾处进行了改编

#原始点:
pts=[[100100]、[200200]、[300100]、[400300]、[300400]、[200300]、[100100]]
#极值:
最小值=[pts[0][0],pts[0][1]]
max=[pts[0][0],pts[0][1]]
临时技术秘书处一级:
对于范围(2)内的j:
如果我[j]max[j]:
max[j]=i[j]
#新尺寸:
w=最大值[0]-最小值[0]
h=最大值[1]-最小值[1]
如果len(sys.argv)>2:
xyz=[int(sys.argv[1]),int(sys.argv[2])]
其他:
xyz=[200100]
#通过切断低于最小值、高于最大值的电流进行正常化:
对于枚举中的i,p(pts):
pts[i]=[p[0]-min[0],p[1]-min[1]]
x=0
y=1
逻辑=无
计数=0
对于范围内的i(透镜(pts)-1):
测试=((pts[i][y]xyz[y])或\
((pts[i][y]>xyz[y])和(pts[i+1][y]Aha

!=
|!=
。通过更改其工作的运算符

啊哈

!=
和|!=
。通过更改其工作的运算符