设计程序使 “圆心沿正弦曲线轨迹移动的实心圆”能够循环 往复地不断运动。圆圈到达正弦曲线的尾部,可以自动往回移动,半径改为由大变小的模式,颜色模式和先前的一样。2)点击鼠标左键,圆圈停止移动,再点击一次,圆圈继续按照上一次的方向移动。3)点击鼠标右键,圆圈可以向反方向移动,比如,原来方向向左,点击一次右键,则变为向右移动,再次点击右键,则变为向左移动
时间: 2024-02-28 12:55:14 浏览: 153
这个程序可以使用 Python 中的 Pygame 库来实现。以下是示例代码:
```python
import pygame
import math
# 初始化 Pygame
pygame.init()
# 定义窗口大小和标题
size = (800, 600)
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Moving Circle")
# 定义圆心的初始位置、半径、颜色和方向
x = 0
y = size[1] // 2
r = 50
color = (255, 255, 0)
direction = 1
# 定义正弦曲线的参数
amplitude = 200
frequency = 0.02
# 定义圆心的移动速度
speed = 2
# 定义标志位,表示圆圈是否在移动
moving = True
# 游戏主循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
elif event.type == pygame.MOUSEBUTTONDOWN:
if event.button == 1: # 左键点击,切换移动状态
moving = not moving
elif event.button == 3: # 右键点击,切换方向
direction *= -1
# 移动圆心
if moving:
x += speed * direction
y = int(size[1] // 2 + amplitude * math.sin(frequency * x))
if x > size[0] + r:
x = 0
r = 50
elif x < -r:
x = size[0]
r = 50
# 绘制圆形
pygame.draw.circle(screen, color, (x, y), r)
# 更新屏幕
pygame.display.update()
```
该程序使用 Pygame 库创建了一个窗口,并在窗口中绘制了一个圆形。圆心的位置沿着正弦曲线移动,速度和方向可以通过鼠标点击进行控制。当圆心到达曲线的尾部时,它会自动往回移动,并且半径会由大变小。要停止圆心的移动,只需点击鼠标左键,再次点击即可恢复移动。要改变圆心的移动方向,只需点击鼠标右键即可。
阅读全文