【发布时间】:2022-01-05 07:35:54
【问题描述】:
我正在尝试确定 pt 是否在多边形内。 pt 必须作为符号输入,因为它与代码的其他部分集成。但是,我意识到我无法评估结果。我有一个“NoneType”。我的代码是:
import numpy as np
from sympy import Symbol, Piecewise, lambdify, And, Ne
from sympy import Point, Polygon
x1, y1 = Symbol('x1'), Symbol('y1')
x2, y2 = Symbol('x2'), Symbol('y2')
xp, yp = Symbol('xp'), Symbol('yp')
p1, p2, p3, p4 = map(Point, [(0, 0), (5, 0), (5, 5), (0,5)])
poly = Polygon(p1, p2, p3, p4)
isEnclosed = poly.encloses_point(Point(xp, yp))
isi = lambdify([xp,yp], isEnclosed, "numpy")
xp_act = 2
yp_act = 1
is_act=isi(xp_act,yp_act)
print(is_act)
有人可以帮忙吗? 谢谢!
【问题讨论】:
-
我认为
lambidify没有任何用处。但是,如果您想坚持下去,请显示 full error, with traceback! -
poly.encloses_point(Point(xp, yp))返回None,它不会创建数学表达式来测试xp,yp是否在多边形内。对于任意多边形,你不能只写一个简单的表达式。