Python Sympy:点旋转后计算=False

Python Sympy:点旋转后计算=False,python,sympy,g-code,Python,Sympy,G Code,我是python新手,我正在尝试使用python生成g代码。我使用Symphy是因为我还需要做线段、交点,甚至凸壳 给定一个初始点,我需要将其从中心(0,0)旋转+/-120度,最终结果如下: “G0 X0 Y120.4” 我将evaluate=False设置为获得实际分数,但我的做法仅适用于初始分数,而不适用于其他分数: G0 X0 Y120.400000000000 G0 X-301*sqrt(3)/5 Y-301/5 如何以初始Z点的形式表示其他点 from sympy import Po

我是python新手,我正在尝试使用python生成g代码。我使用Symphy是因为我还需要做线段、交点,甚至凸壳

给定一个初始点,我需要将其从中心(0,0)旋转+/-120度,最终结果如下:

“G0 X0 Y120.4”

我将evaluate=False设置为获得实际分数,但我的做法仅适用于初始分数,而不适用于其他分数:

G0 X0 Y120.400000000000

G0 X-301*sqrt(3)/5 Y-301/5

如何以初始Z点的形式表示其他点

from sympy import Point, pi
z = Point(0, 120.4, evaluate = False)
x = z.rotate(pi*2/3)
y = z.rotate(-pi*2/3)

print('G0 X{0} Y{1}'.format(z.x,z.y))
print('G0 X{0} Y{1}'.format(x.x,x.y))

在打印之前或打印期间尝试计算坐标:

>>> Point(0, 120.4) # with evaluate=True, the Float is made Rational
Point(0, 602/5)
>>> _.n()  # evaluate the coordinates
Point(0, 120.400000000000)
>>> print('G0 X{0} Y{1}'.format(x.x.n(),x.y.n()))  # from your example
G0 X-104.269458615646 Y-60.2000000000000

evaluate=False
做什么?答案1应该足够清楚。另外还有evalf()[link]()