Как передать float в pygame.draw.circle () - PullRequest
1 голос
/ 13 июля 2020

Я пытаюсь закодировать серию Фурье на PyGame. У меня проблема, заключающаяся в том, что я не могу передать float значения в функции:

circle_x = radius * math.cos(angle)
circle_y = radius * math.sin(angle)
pygame.draw.circle(screen, (0, 255, 255), (circle_x, circle_y), 8, 0) 

1 Ответ

1 голос
/ 14 июля 2020

Нет координат пикселей с плавающей запятой, они все целые числа от 0 до window_width -1. Таким образом, для pygame.draw.circle() нет причин принимать аргументы с плавающей запятой. Даже если вы написали свою собственную функцию рисования круга, она просто перемещает необходимость использования целых чисел с уровня круга на уровень пикселей.

Вероятно, вы можете просто использовать функцию round( float_value, decimal_places=0 ), которая будет округлять в целое число, если параметр десятичных разрядов 0 (по умолчанию)

circle_x = round( radius * math.cos(angle) )
circle_y = round( radius * math.sin(angle) )
pygame.draw.circle(screen, (0, 255, 255), (circle_x, circle_y), 8, 0)
...