网站首页 > 精选文章 正文
第三阶段:海龟编程专题
第9章:循环与海龟协作
目标:像指挥魔法小海龟跳“循环舞步”一样,用重复的指令画出复杂又漂亮的图案!本章将教你用for和while循环让海龟自动完成绘画任务,成为自动化小巫师!
9.1 用循环画正多边形
魔法目标:用循环让海龟画出正三角形、正方形、正六边形甚至正五十边形!边数越多,图形越接近圆形哦!
魔法原理:
- 正多边形规律:所有边长度相等,每个内角相同。
- 旋转角度计算:每次转向的角度 = 360° ÷ 边数(外角)。 例如: 正三角形:360° ÷ 3 = 120° 正方形:360° ÷ 4 = 90° 正六边形:360° ÷ 6 = 60° 正五十边形:360° ÷ 50 = 7.2°
魔法咒语:
import turtle
t = turtle.Turtle()
side_length = 100 # 每条边的长度
# 画正六边形
for _ in range(6):
t.forward(side_length)
t.left(60) # 外角60度
# 画正五十边形(边数越多越像圆!)
t.penup()
t.goto(150, 0)
t.pendown()
for _ in range(50):
t.forward(side_length)
t.left(7.2) # 外角7.2度
趣味实验:
- 修改range()中的数字,尝试画正五边形(108°)、正八边形(45°)。
- 观察边数增加时,图形如何从多边形逐渐变成圆形!
9.2 螺旋线与星空效果
魔法目标:用循环和角度变化画出螺旋线和星空图案!
魔法技巧:
- 螺旋线:每次循环增加前进距离或改变转向角度。
- 星空效果:用随机颜色和位置画小圆点,模拟星光。
魔法咒语:
# 画螺旋线
t.penup()
t.goto(0, 0)
t.pendown()
for i in range(1, 100): # 循环100次
t.forward(i * 2) # 每次前进距离递增
t.right(10) # 每次右转10度
# 画星空(随机小圆点)
import random
t.color("white")
for _ in range(50):
x = random.randint(-300, 300)
y = random.randint(-300, 300)
t.goto(x, y)
t.dot(5) # 画直径5像素的圆点
趣味挑战:
- 修改螺旋线的颜色为渐变色(如从蓝色到紫色)。
- 让星空中的星星闪烁(用time.sleep(0.1)暂停后重新绘制)。
9.3 彩虹同心圆项目
魔法目标:用循环嵌套画出彩虹色的同心圆,形成绚丽图案!
魔法步骤:
- 设置颜色列表:红、橙、黄、绿、蓝、紫。
- 循环画圆:从内到外,每圈颜色不同。
- 调整半径:每圈半径递增20像素。
魔法咒语:
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
radius = 20 # 初始半径
for color in colors:
t.pencolor(color)
t.circle(radius)
radius += 20 # 半径每次增加20
趣味实验:
- 修改颜色顺序,观察彩虹效果变化。
- 添加白色小圆点作为“星星”,点缀星空。
魔法小锦囊
- 几何小知识: 正多边形的外角 = 360° ÷ 边数 边数越多,外角越小,图形越接近圆形!
- 错误急救包: 图形不闭合:检查是否漏掉t.penup()或t.pendown()。 旋转角度错误:确认计算的是外角而非内角。
附:海龟指令速查表
指令 | 作用 |
forward(n) | 向前移动n步 |
circle(r) | 画半径为r的圆 |
dot(size) | 画直径为size的圆点 |
goto(x,y) | 移动到坐标(x,y) |
color(c) | 设置画笔颜色 |
通过本章,你已经学会了用循环让海龟自动绘制复杂图案!记住:循环是自动化艺术的魔法钥匙
猜你喜欢
- 2025-07-28 手把手教您3D打印一个自动写字机器人
- 2025-07-28 学习少儿编程,可以这样寓教于乐(少儿编程到底学什么东西)
- 2025-07-28 ROS2开发实践:ROS工具(launch脚本、TF坐标系、Gazebo等)
- 2025-07-28 python海龟绘图turtle(一):画布和窗体
- 2025-07-28 文言文编程还不够好玩?这里有个16岁高中生开发的粤语编程项目
- 2025-07-28 教孩子学Python编程之海龟画图(二)
- 2025-07-28 Python Turtle绘图 新手也能画出彩色风车、五角星 孩子学编程超合适
- 2025-07-28 少儿学编程系列---如何使用turtle画花瓣
- 2025-07-28 Python turtle模块编程实践教程(python turtle.rt)
- 2025-07-28 小学生Python编程入门-10.函数与海龟编程
- 最近发表
-
- Revit软件的AI驱动建模工具,Revit-MCP开源代码
- 腾讯云 Lighthouse 轻量应用服务器:数据驱动的架构选型指南
- 外贸独立站的"减肥日记":跨境电商卖家为何被数据库拖垮?
- CentOS7下搭建日志采集分析系统LogAnalyzer
- SpringBoot数据库管理 - 用Liquibase对数据库管理和迁移?
- 数据库日志清理方法-日志文件收缩
- MySQL数据库太low了,error,slow,general日志...
- 利用shell脚本将Mysql错误日志保存到数据库中
- Python日志管理实战:用logging模块打造专业级应用监控
- Spring Boot中自定义appender实现往数据库中记录日志?
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)