Sympy: оценка точки = ложь после поворота точки

Я новичок в Python, и я пытаюсь сгенерировать G-код с использованием Python. Я использую sympy, потому что мне также нужно делать отрезки, пересечения и даже выпуклую оболочку.

Учитывая начальную точку (точки), мне нужно повернуть ее (их) на +/- 120 градусов от центра (0,0), и мой конечный результат должен быть примерно таким:

"G0 X0 Y120.4"

Я получаю оценку = Ложь, чтобы получить действительные баллы, но способ, которым я делаю это, работает только для начального, а не для других:

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))

1 ответ

Решение

Попробуйте оценить координаты до или во время печати:

>>> 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
Другие вопросы по тегам