【发布时间】:2011-02-23 15:16:26
【问题描述】:
您好,
我正在尝试将点数组 (x, y) 合并到框数组 [(x0, y0), (x1, y0), (x0, y1), (x1, y1)] 中(元组是角点)
到目前为止,我有以下例程:
def isInside(self, point, x0, x1, y0, y1):
pr1 = getProduct(point, (x0, y0), (x1, y0))
if pr1 >= 0:
pr2 = getProduct(point, (x1, y0), (x1, y1))
if pr2 >= 0:
pr3 = getProduct(point, (x1, y1), (x0, y1))
if pr3 >= 0:
pr4 = getProduct(point, (x0, y1), (x0, y0))
if pr4 >= 0:
return True
return False
def getProduct(origin, pointA, pointB):
product = (pointA[0] - origin[0])*(pointB[1] - origin[1]) - (pointB[0] - origin[0])*(pointA[1] - origin[1])
return product
还有比逐点查找更好的方法吗?也许是一些不明显的 numpy 例程?
谢谢!
【问题讨论】:
-
一位回答者认为您想“计算密度”;一位回答者认为您想让代码运行得更快;一位回答者(我)认为你想让你的代码更清晰......也许你应该澄清你的问题:)
-
无需澄清 - 我从不同方面得到了很好的答案。更多脑食:)