如何解决如何获取同情点的浮点值?
from sympy import Point,Line
l1 = Line((3,5,-2),(1,-1,4))
p1 = Point3D((3,7,9))
intersection_p = p1.intersection(l1)[0]
print(intersection_p)
我明白
Point3D(30/7,62/7,-41/7)
但是,我想要浮点值,而不是有理数。
[4.285714285714286,8.857142857142858,-5.857142857142857]
我已经这样做了,这给了我想要的输出。
intersection1 = [float(i) for i in p1.intersection(l1)[0].args]
但我想知道是否有任何 sympy 方法可以将 Point3D
对象的坐标值转换/提取为 float
。
解决方法
您可以使用 evalf()
,就像使用正则符号表达式一样。您可以使用 tuple(p1.evalf())
或 list(p1.evalf())
以更标准的 Python 方式获取数字。
from sympy import Point3D,sqrt,pi
p1 = Point3D((sqrt(2),7,pi/2))
print(p1)
print(p1.evalf())
输出:
Point3D(sqrt(2),pi/2)
Point3D(1.4142135623731,7.0,1.5707963267949)
请注意,evalf()
接受一个表示位数的参数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。