修改您的函数(下面的问题),以便它获取点列表而不是单个点,并且仅当列表中的所有点都在矩形中时才返回布尔True。 例如,
allIn((0,0), (5,5), [(1,1), (0,0), (5,5)]) should return True
but allIn((0,0), (5,5), [(1,1), (0,0), (5,6)]) should return False
empty list of points allIn((0,0), (5,5), []) should return False
问题:编写一个函数isIn(),如果一个点在两组坐标所指定的矩形内,则返回True;如果该点在矩形之外,则返回False。该函数应接受三个参数:
第一个参数是一组坐标,该坐标定义了矩形的一个角, 第二个参数也是定义第二个角的一组坐标, 第三组坐标定义了一个正在测试的点。
例如,
isIn((1,2), (3,4), (1.5, 3.2)) should return True,
isIn((4,3.5), (2,1), (3, 2)) should return True,
isIn((-1,0), (5,5), (6,0)) should return False,
isIn((4,1), (2,4), (2.5,4.5)) should return False.
def isIn(firstCorner=(0,0),secondCorner=(0,0),point=(0,0)):
x1,y1=firstCorner[0],firstCorner[1]
x2,y2=secondCorner[0],secondCorner[1]
x,y=point[0],point[1]
if (x >= x1 and x <= x2 and y >= y1 and y <= y2) :
return True
elif(x >= x2 and x <= x1 and y >= y2 and y <= y1):
return True
else:
return False