当前位置:首页>python>用Python打造极简绘板

用Python打造极简绘板

  • 2026-08-19 08:59:57
用Python打造极简绘板

还在羡慕别人能写代码画画吗?今天,我们就用不到 100 行的 Python 代码,亲手打造一个属于你自己的“灵魂画板”

不仅能用鼠标画画,还能实现“双击清屏”的神奇功能,解放你随时想重来的创作冲动~🖌️

🎨 功能亮点速览

  • 左键单击:开始画点,随性涂鸦

  • 按住左键拖动:连续画线,丝滑流畅

  • 快速双击左键:一键清屏,重新开始

  • 黑白极简风:经典配色,专注创作


🧠 核心思路拆解

我们这个画板实现起来其实非常简单,主要靠以下几个“小魔法”:

1️⃣ 捕捉鼠标的“一举一动”

通过 pygame.MOUSEBUTTONDOWNMOUSEBUTTONUPMOUSEMOTION 这三个事件,我们就能知道鼠标什么时候按下、松开、移动。

2️⃣ 判断“是单击还是双击?”

用一个“计时小工具”记录上次点击的时间,如果两次点击间隔很短(比如 300 毫秒内),就判定为双击 → 执行清屏!

3️⃣ 画点还是画线?

单击时画一个小圆点,拖动时则在小点之间连上短线,这样画出来的线条既自然又流畅,不会断断续续。


🔧 关键代码片段解读

# 检测是否双击(两次点击时间间隔小于设定值)time_since_last_click = current_time - last_click_timelast_click_time = current_timeif time_since_last_click < double_click_delay:    screen.fill(BACKGROUND)  # 清屏!else:    drawing = True    pygame.draw.circle(screen, FOREGROUND, pos, 1)  # 画一个小点

这段就是双击清屏的“心脏”,简单吧?


🚀 如何运行?

  1. 安装 pygame:

    pip install pygame
  2. 把代码保存为 Drawin.py

  3. 运行:

    python Drawin.py

4.开始你的灵魂创作吧!


✨ 自由拓展创意

这个画板只是一个起点,你可以轻松加入更多酷炫功能:

  • 🎨 调色盘功能:点击切换颜色

  • 📏 笔刷粗细:滚动鼠标滚轮调整

  • 💾 保存作品:按 Ctrl+S 保存图片

  • 🔄 撤销/重做:让创作更自由


💬 写在最后

写代码不只是写逻辑、做项目,也可以是一种创作、一种表达用几十行代码,创造一个能互动、能画画的程序,这种成就感,是单纯的调用现成工具无法比拟的。

动手试试吧,或许你会发现:原来我也可以是一个会写代码的画家🎨👨‍💻


附完整代码

import pygameimport sys# 初始化pygamepygame.init()# 设置窗口尺寸WIDTH, HEIGHT = 800600screen = pygame.display.set_mode((WIDTH, HEIGHT))pygame.display.set_caption("简易绘画程序 - 左键画点,双击清屏")# 颜色定义BACKGROUND = (255255255)  # 白色背景FOREGROUND = (000)        # 黑色画笔# 初始化变量clock = pygame.time.Clock()drawing = Falselast_click_time = 0  # 用于检测双击double_click_delay = 300  # 双击延迟时间(毫秒)# 填充背景色screen.fill(BACKGROUND)pygame.display.flip()# 主循环running = Truewhile running:    current_time = pygame.time.get_ticks()    for event in pygame.event.get():        if event.type == pygame.QUIT:            running = False        # 鼠标按下事件        elif event.type == pygame.MOUSEBUTTONDOWN and event.button == 1:            # 检测是否双击(两次点击时间间隔小于设定值)            time_since_last_click = current_time - last_click_time            last_click_time = current_time            # 如果是双击,清屏            if time_since_last_click < double_click_delay:                screen.fill(BACKGROUND)                pygame.display.flip()            else:                # 单次点击,开始画点                drawing = True                pos = pygame.mouse.get_pos()                pygame.draw.circle(screen, FOREGROUND, pos, 1)                pygame.display.flip()        # 鼠标松开事件        elif event.type == pygame.MOUSEBUTTONUP and event.button == 1:            drawing = False        # 鼠标移动事件        elif event.type == pygame.MOUSEMOTION:            if drawing:                # 获取鼠标当前位置                pos = pygame.mouse.get_pos()                # 绘制小圆点(模拟铅笔效果)                pygame.draw.circle(screen, FOREGROUND, pos, 1)                # 在连续点之间绘制短线,使线条更平滑                if hasattr(event, 'rel'):                    # 获取鼠标相对移动距离                    rel_x, rel_y = event.rel                    if abs(rel_x) > 1 or abs(rel_y) > 1:                        # 在起点和终点之间绘制短线                        prev_pos = (pos[0] - rel_x, pos[1] - rel_y)                        pygame.draw.line(screen, FOREGROUND, prev_pos, pos, 1)                pygame.display.flip()    # 控制帧率    clock.tick(60)# 退出pygamepygame.quit()sys.exit()

欢迎自取、修改、再创造!如果你做出了更有趣的版本,欢迎在评论区分享~下期我们可以一起实现“彩色画笔”和“橡皮擦”功能,敬请期待!


关注我,一起用代码画画,用创意编程!#Python#编程创意#pygame#画图程序#代码画画

代码已备好,画布已就位。打开编辑器,运行它,开始创作你的第一个程序画作吧!

最新文章

随机文章