【趣味Python】第10课:漫天繁星疯狂闪闪闪(点击版)

在这里插入图片描述

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

文章名称链接
【趣味Python】第10课:漫天繁星疯狂闪闪闪(点击版)点我进行跳转
【趣味Python】第9课:Tkinter恶搞无限弹窗点我进行跳转
【趣味Python】第8课:小汽车游戏点我进行跳转
【趣味Python】第7课:炫酷计算器资源占用率可视化点我进行跳转
【趣味Python】第6课:小风车吱悠悠地转点我进行跳转
【趣味Python】第5课:雪花飘飘效果点我进行跳转
【趣味Python】第4课:炫酷烟花秀点我进行跳转
【趣味Python】第3课:夜空划过流星雨点我进行跳转
【趣味Python】第2课:漫天繁星疯狂闪闪闪点我进行跳转
【趣味Python】第1课:使用tkinter实现疯狂弹幕效果点我进行跳转

背景介绍

有没有想过,用代码也可以绘出一片“会跳舞的星星”?

今天我们来带大家体验一把,如何用 Python + Tkinter 编写一个 点击生成闪烁五角星 的小动画。只需轻点鼠标,一颗颗彩色五角星便会在画布上“疯狂闪闪闪”——活灵活现,炫彩夺目!

🌟 项目亮点

  • 鼠标每点击一次,生成一颗“跳动”的五角星
  • 每颗星星都有自己独立的闪烁动画
  • 色彩随机、位置自由、造型有趣
  • 不依赖外部库,纯 Tkinter 编写,零门槛

🎬 效果展示

点击窗口任意位置,星星就会出现在你点击的地方,并持续“蹦蹦跳跳”,每颗星都像有生命一样跳舞,色彩斑斓,童趣十足。
在这里插入图片描述

库的安装

用途安装
tkinter界面设计pip install tkinter -i https://pypi.tuna.tsinghua.edu.cn/simple/

💻 代码实现(点击版)

以下是核心代码,仅使用 Python 自带的 tkinter 模块:

完整代码

import tkinter as tk
import random
from math import sin, cos, pi
from tkinter.constants import *

width = 888
height = 500
colors = ["red", "orange", "yellow", "green", "blue", "purple", "pink", "cyan", "magenta"]
frames = 20

def star_points(cx, cy, r, rotation=0):
    points = []
    for i in range(5):
        outer_angle = rotation + i * 2 * pi / 5
        inner_angle = outer_angle + pi / 5
        outer_x = cx + r * cos(outer_angle)
        outer_y = cy + r * sin(outer_angle)
        inner_x = cx + r * 0.5 * cos(inner_angle)
        inner_y = cy + r * 0.5 * sin(inner_angle)
        points.extend([outer_x, outer_y, inner_x, inner_y])
    return points

def curve(p):
    return 2 * (2 * sin(4 * p)) / (2 * pi)

class ClickStar:
    def __init__(self, canvas, x, y):
        self.canvas = canvas
        self.x = x
        self.y = y
        self.radius = random.randint(10, 20)
        self.color = random.choice(colors)
        self.rotation = random.uniform(0, 2 * pi)
        self.frame = 0
        self.animate()

    def animate(self):
        self.canvas.delete(f"star_{id(self)}")
        ratio = 1 + 0.3 * curve(self.frame / 10 * pi)
        r = self.radius * ratio
        points = star_points(self.x, self.y, r, self.rotation)
        self.canvas.create_polygon(points, fill=self.color, outline="black", tags=f"star_{id(self)}")
        self.frame = (self.frame + 1) % frames
        self.canvas.after(80, self.animate)

class StarApp:
    def __init__(self, root):
        self.root = root
        self.root.title("点击生成闪动的五角星")
        self.canvas = tk.Canvas(root, width=width, height=height, bg="black")
        self.canvas.pack()
        self.canvas.bind("<Button-1>", self.create_star)

    def create_star(self, event):
        ClickStar(self.canvas, event.x, event.y)

if __name__ == '__main__':
    root = tk.Tk()
    app = StarApp(root)
    root.mainloop()

🧠 知识点回顾

这节课你将学会:

  • 如何用 Canvas 绘制复杂多边形(如五角星)
  • 如何绑定鼠标点击事件
  • 如何实现独立对象的定时动画
  • 使用三角函数模拟“跳动/缩放”的视觉效果

🧩 进阶思考

你可以试着拓展这个项目:

  • 给星星添加不同的旋转方向
  • 点击时播放“叮”的一声音效
  • 添加“清除所有星星”按钮
  • 限制最大星星数以防内存占用过高

🎉 小结

这一课,我们用简单的 Python 图形界面编程,让每一次点击都带来无限惊喜。编程从来不仅仅是逻辑,更可以是创意的表达,是童年的回忆,是夜空中最亮的星。

还等什么?打开你的编辑器,开始创造你自己的星星世界吧!

总结

  • 希望对初学者有帮助

  • 致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【一个免费关注】!感谢

  • 求个 🤞 关注 🤞

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 求个 ❤️ 喜欢 ❤️

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 求个 👍 收藏 👍

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小庄-Python办公

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值