我有一个点的列表,我需要找出这些点是否存在于由左上角和右下角定义的矩形中。如果所有点都属于矩形,则结果为真,否则结果为假。在
这是我的代码,但我在某个地方弄错了。在
def Functn1(topLeft=(0,0), bottomRight=(0,0), pointList=[]):
x1 = topLeft[0]
y1 = topLeft[1]
x2 = bottomRight[0]
y2 = bottomRight[1]
xa = pointList[i][0]
ya = pointList[i][0]
xb = pointList[i][1]
yb = pointList[i][1]
lengthofList = len(pointList)
for i in range(lengthofList):
if ((xa > x1 and xb < x2) and (ya > y1 and yb < y2)):
#if ((x[i][0] > x1 and x[i][1] < x2) and (y[i][0] > y1 and y[i][1] < y2)):
#Also tried using this code but keep getting the same error
return True
else:
return False
Functn1((0,0), (5,5), [(1,1), (0,0), (5,6)]) #should get False
我得到了这个错误:
^{pr2}$
根据我对您问题的理解,以下是您在代码中犯下的一些错误:
{cd1>在初始化变量之前使用了}比如:-。在
我想您想在
for
循环中使用它作为迭代变量,但是在循环之外使用了它。您为
pointList
变量中的每个点创建了四个变量,我认为这些变量是针对点的x,y,width,height的,尽管一个点没有任何宽度或高度。循环无效,因为它在循环列表中的第一项后返回},并且它不会搜索其他点来知道它们是在矩形内还是在矩形之外。
True
或{因此,我创建了一个代码副本,并根据您的需要进行了一些更改,以便于理解:
^{pr2}$如果你不知道矩形中的像素值是5,那么你应该知道这个矩形的值是6,我写了这样的代码,如果你想改变它,你可以很容易地把},也可以把},以包括矩形的最后一个点。在
<
操作符改成{>
改成{相关问题 更多 >
编程相关推荐