python 中使用turtle库 —— 绘制随机圆球

举报
福州司马懿 发表于 2024/06/30 16:12:07 2024/06/30
【摘要】 预期功能下面主要功能是使用 Python 的 turtle 库在屏幕上随机生成 100 个大小不一的黑点。每个点实际上是一个圆形,其半径(大小)是随机选择的,范围在 1 到 10 之间。同时,这些点的位置也是随机选择的,它们在屏幕上的一个特定区域(x 轴在 -200 到 200 之间,y 轴在 -150 到 150 之间)内随机分布。 函数介绍在这段代码中,有几个关键的 turtle 库函...

预期功能

下面主要功能是使用 Python 的 turtle 库在屏幕上随机生成 100 个大小不一的黑点。每个点实际上是一个圆形,其半径(大小)是随机选择的,范围在 1 到 10 之间。同时,这些点的位置也是随机选择的,它们在屏幕上的一个特定区域(x 轴在 -200 到 200 之间,y 轴在 -150 到 150 之间)内随机分布。

函数介绍

在这段代码中,有几个关键的 turtle 库函数被使用,它们各自在绘图过程中扮演着重要的角色。下面我将逐一解释这些函数及其作用:

  1. turtle.Turtle()

    • 作用:创建一个新的 Turtle 对象。Turtle 对象是一个“海龟”,它可以在屏幕上移动并绘制图形。
    • 使用t = turtle.Turtle() 创建一个名为 t 的 Turtle 对象。
  2. t.speed(0)

    • 作用:设置 Turtle 的绘制速度。0 表示最快速度,没有动画效果,直接绘制完成。
    • 使用t.speed(0) 将 Turtle 的速度设置为最快。
  3. t.penup()

    • 作用:抬起 Turtle 的画笔,这样当 Turtle 移动时,它不会在屏幕上留下任何痕迹。
    • 使用t.penup() 使得 Turtle 在移动到下一个绘制点时不绘制线条。
  4. t.pendown()

    • 作用:放下 Turtle 的画笔,这样当 Turtle 移动或绘制时,它会在屏幕上留下痕迹。
    • 使用t.pendown() 使得 Turtle 在绘制圆形时能够留下痕迹。
  5. t.goto(x, y)

    • 作用:将 Turtle 移动到指定的 (x, y) 坐标位置。
    • 使用t.goto(x, y) 将 Turtle 移动到屏幕上随机选择的点。
  6. t.circle(size)

    • 作用:以 Turtle 当前位置为圆心,绘制一个半径为 size 的圆形。
    • 使用t.circle(size) 绘制一个代表“点”的圆形,其中 size 是随机生成的半径。
  7. t.begin_fill()t.end_fill()

    • 作用:这两个函数用于开始和结束一个填充区域。在它们之间的图形会被填充颜色。
    • 使用:虽然在这段代码中使用了 begin_fill()end_fill(),但由于没有指定填充颜色(默认为空字符串),实际上圆形不会被填充颜色。这两个函数在这里是多余的,因为点通常不需要填充颜色。
  8. turtle.done()

    • 作用:在绘图完成后调用,它会保持绘图窗口打开,直到用户关闭它。
    • 使用turtle.done() 确保绘图窗口在程序结束后仍然可见,直到用户手动关闭它。

通过这些函数,我们可以控制 Turtle 的行为,如移动、绘制、填充等,从而创建出各种复杂的图形和动画。

代码实战

import turtle  
import random

# 创建一个新的turtle对象 
t = turtle.Turtle()

# 设置画笔速度为最快  
t.speed(0)

# 设置画笔抬起,这样移动时不会留下痕迹  
t.penup()

for i in range(100):
    x=random.randint(-200, 200)
    y=random.randint(-150, 150)
    d=random.randint(1,150)
    
    t.goto(x,y)
    
    # 随机选择一个点的大小(半径)  
    size = random.randint(1, 10)  # 点的半径在110之间  
    
    # 放下画笔开始绘制  
    t.pendown()
    
    # 绘制一个圆形作为点  
    t.begin_fill()  # 开始填充颜色  
    t.circle(size)  # 绘制一个半径为size的圆  
    t.end_fill()    # 结束填充颜色
    
    # 抬起画笔以便移动到下一个位置  
    t.penup()  
    
# 保持窗口打开,直到用户关闭它  
turtle.done()

图片.png

注释掉penup的效果

下面将代码中每个循环后的penup注释掉,看看它的效果。代码修改如下

图片.png

运行效果如图

图片.png

可以看到,如果每次笔没有抬起,那么所有点将会连起来,这点跟我们写字的时候没有抬起笔很像

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。