我试图计算点(x_1,y_1,z_1)到SymPy中平面ax+by+cz+d=0的点平面距离,但我发现结果不正确。下面是我使用的代码
from sympy import *
a, b, c, d = symbols('a b c d')
x1, y1, z1 = symbols('x_1 y_1 z_1')
p1 = Point(x1, y1, z1)
plane1 = Plane(Point(0, 0, -d/c), normal_vector=(a, b, c))
plane1.distance(p1)
正确答案应该是
但SymPy给我的是frac{ax{u1+by{u1+cz{u1+d}{sqrt{a^2+b^2}}。你知道吗
对我来说这看起来像个虫子。Here是sympy计算距离的方式(方法
distance(self, o)
):如果我们检查
k
和a, b, c
,我们会发现方程的系数不正确:c
是零,这解释了您的结果。这可以通过简化方程式来解决:在这种情况下,距离
t
与您预期的一样:更新:这在当前SymPy主机中已修复。参见相应的issue。你知道吗
相关问题 更多 >
编程相关推荐