画复杂图形
更有挑战的图形
我们已经掌握了基本图形的画法,现在让我们挑战一些更复杂的图形!
画房子
让我们用海龟画一个简单的房子:
import turtle
t = turtle.Turtle()
# 设置画笔颜色
t.pencolor("black")
t.fillcolor("yellow")
# 开始填充
t.begin_fill()
# 画房子的主体(正方形)
for i in range(4):
t.forward(100)
t.right(90)
# 画屋顶(三角形)
t.forward(100) # 移动到屋顶起点
t.right(30)
t.forward(100)
t.right(120)
t.forward(100)
# 结束填充
t.end_fill()
画太阳
让我们画一个带光芒的太阳:
import turtle
t = turtle.Turtle()
# 设置画笔颜色
t.pencolor("orange")
t.fillcolor("yellow")
# 开始填充
t.begin_fill()
# 画太阳(圆形)
t.circle(50)
# 结束填充
t.end_fill()
# 画光芒
t.penup()
t.goto(0, 50) # 移动到太阳顶部
t.pendown()
for i in range(12):
t.forward(30) # 画光芒
t.backward(30) # 回到太阳边缘
t.right(30) # 转到下一个光芒的位置
画彩虹
让我们画一个美丽的彩虹:
import turtle
t = turtle.Turtle()
# 设置画笔粗细
t.pensize(5)
# 彩虹的颜色
colors = ["red", "orange", "yellow", "green", "blue", "purple"]
# 画彩虹
for color in colors:
t.pencolor(color) # 设置颜色
t.circle(50) # 画圆
t.right(30) # 移动到下一个圆的位置
画雪花
雪花是一个美丽的六边形图案:
import turtle
t = turtle.Turtle()
# 设置画笔颜色
t.pencolor("blue")
# 画雪花
def draw_snowflake_branch():
for i in range(3):
t.forward(30)
t.backward(30)
t.right(60)
# 画六个分支
for i in range(6):
draw_snowflake_branch()
t.forward(30)
t.right(60)
画万花筒
万花筒是一个美丽的对称图形:
import turtle
t = turtle.Turtle()
# 设置画笔颜色
t.pencolor("purple")
t.speed(10) # 最快速度
# 画万花筒
for i in range(36):
t.forward(50)
t.right(70)
t.forward(30)
t.right(130)
t.forward(50)
t.right(70)
t.forward(30)
t.right(130)
t.right(10) # 每次转10度,共360度
练习
- 画一个带门窗的房子
- 画一个更复杂的雪花
- 画一个你自己的创意图案
- 尝试结合多个图形,创建一个场景
小提示
- 使用
t.goto(x, y)可以让海龟移动到指定坐标 - 使用
t.circle(radius)可以画圆形 - 使用
t.dot(size)可以画一个点 - 使用
t.write(text)可以写字
思考题
如果你想画一个正五角星,每次应该转多少度呢?
下一课我们将学习如何给图形填充颜色!🐢
Python 工具/在线模拟器/Python海龟绘图可视化
Python海龟绘图可视化 - https://www.cnbbx.com/python-editor/