python鼠标按下开始画圆跟随鼠标移动,鼠标抬起停止画圆
时间: 2023-10-17 13:29:19 浏览: 118
你可以使用Python中的Pygame库来实现这个功能。以下是一个简单的示例代码:
```python
import pygame
pygame.init()
# 设置屏幕大小和标题
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Draw Circle")
# 设置颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
# 设置画布和鼠标状态
drawing = False
circle_pos = (0, 0)
circle_radius = 0
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
elif event.type == pygame.MOUSEBUTTONDOWN:
# 鼠标按下开始画圆
drawing = True
circle_pos = event.pos
elif event.type == pygame.MOUSEBUTTONUP:
# 鼠标抬起停止画圆
drawing = False
circle_radius = 0
elif event.type == pygame.MOUSEMOTION and drawing:
# 鼠标移动时跟随画圆
mouse_pos = event.pos
circle_radius = int(pygame.math.distance(circle_pos, mouse_pos))
# 绘制画布
screen.fill(WHITE)
# 绘制圆形
if drawing:
pygame.draw.circle(screen, BLACK, circle_pos, circle_radius, 2)
# 更新屏幕
pygame.display.update()
```
在这个示例代码中,我们使用Pygame库来创建一个窗口,并设置事件处理程序来检测鼠标按下和抬起的事件。当鼠标按下时,我们记录下鼠标位置,并设置一个变量来表示正在画圆。当鼠标抬起时,我们停止画圆并重置圆的半径。当鼠标移动时,我们根据当前鼠标位置和圆心位置计算圆的半径,并绘制圆形。
你可以根据自己的需求来修改代码,比如改变颜色、线条宽度等。同时,你也可以添加更多的事件处理程序来实现更多的功能,例如绘制矩形、橡皮擦等。
阅读全文