jianghongz 发表于 2025-9-11 16:22:04

学习了一个有趣的技能-海龟跟随鼠标

import turtle as t
import random as r
t.bgcolor("black")
t.colormode(255)
t.delay(0)
t.hideturtle()
def fun(x,y):
   t.penup()
   t.goto(x,y)
   t.pendown()
   a=r.randint(0,255)
   b=r.randint(0,255)
   c=r.randint(0,255)
   t.color(a,b,c)
   l=r.randint(5,15)
   t.begin_fill()
   for i in range(5):
      t.forward(l)
      t.left(144)
   t.end_fill()
screen=t.Screen()
screen.onclick(fun)
t.done()
      

FishC 发表于 2025-9-11 16:22:50

你好!你的代码实现了一个很有趣的效果:在黑色背景上,每次鼠标点击都会在点击位置绘制一个随机颜色的五角星。我来简单解释一下代码的逻辑:


import turtle as t
import random as r
t.bgcolor("black")      # 设置背景为黑色
t.colormode(255)          # 设置颜色模式为RGB(0-255)
t.delay(0)                # 取消绘制延迟,让绘制更快
t.hideturtle()            # 隐藏海龟图标

def fun(x,y):
   t.penup()            # 抬起画笔(移动时不画线)
   t.goto(x,y)            # 移动到鼠标点击的坐标
   t.pendown()            # 落下画笔(开始画线)
   a=r.randint(0,255)   # 随机生成RGB颜色分量
   b=r.randint(0,255)
   c=r.randint(0,255)
   t.color(a,b,c)         # 设置画笔颜色
   l=r.randint(5,15)      # 随机生成五角星边长(5到15之间)
   t.begin_fill()         # 开始填充颜色
   for i in range(5):   # 画五角星(5条边,每次转144度)
      t.forward(l)
      t.left(144)
   t.end_fill()         # 结束填充

screen=t.Screen()
screen.onclick(fun)       # 绑定鼠标点击事件到fun函数
t.done()                  # 进入事件循环,等待交互


代码中用到了几个关键点:
- t.delay(0) 让绘制速度更快
- screen.onclick(fun) 实现了鼠标事件绑定
- 五角星的绘制是通过每次左转144度(180-36)实现的

如果你想扩展这个程序,可以尝试:
- 修改绘制的形状(比如改成圆形或正方形)
- 添加键盘事件切换颜色或形状
- 增加绘制大小的随机范围

这个程序很好地结合了事件处理和图形绘制,是学习turtle库交互功能的好例子!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 学习了一个有趣的技能-海龟跟随鼠标