gpt4 book ai didi

python - 如何在Pygame中慢慢画一个圆圈?

转载 作者:行者123 更新时间:2023-12-04 15:12:03 26 4
gpt4 key购买 nike

我想在 pygame 中慢慢画一个圆,这样画的 Action 实际上是肉眼可见的。我在 stackoverflow 上得到了一个函数,通过递增终点并保持起点相同来绘制一条直线,但无法弄清楚如何在 pygame 屏幕上慢慢画一个圆。

最佳答案

您可以使用标准的正弦和余弦圆公式:

  • x = r * cos(radians(i)) + a
  • y = r * sin(radians(i)) + b

其中a是圆心的x坐标,by坐标圆心的r 是圆的半径。

要减慢动画速度,请使用 Clock 对象。您可以从内置的 math 模块 访问函数 sincos(请注意,您需要传入值作为弧度,因此导入 radians 函数)

实现:

import pygame
from math import sin, cos, radians

pygame.init()
wn = pygame.display.set_mode((600, 600))

r = 100
a = 300
b = 200

clock = pygame.time.Clock()
for i in range(1, 361):
clock.tick(30)
pygame.draw.circle(wn, (255, 255, 255), (int(r * cos(radians(i)) + a), int(r * sin(radians(i)) + b)), 2)
pygame.display.update()

输出:

enter image description here

如果您更喜欢使用标准线而不是重叠点作为轮廓,请使用 pygame.draw.line像这样的功能:

import pygame
from math import sin, cos, radians

pygame.init()
wn = pygame.display.set_mode((600, 600))

r = 100
a = 300
b = 200

def x_y(r, i, a, b):
return (int(r * cos(radians(i)) + a), int(r * sin(radians(i)) + b))

clock = pygame.time.Clock()
for i in range(0, 360, 2):
clock.tick(30)
pygame.draw.line(wn, (255, 255, 255), x_y(r, i, a, b), x_y(r, i+1, a, b), 2)
pygame.display.update()

关于python - 如何在Pygame中慢慢画一个圆圈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65049152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com