画复杂图形

更有挑战的图形

我们已经掌握了基本图形的画法,现在让我们挑战一些更复杂的图形!

画房子

让我们用海龟画一个简单的房子:

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度

练习

  1. 画一个带门窗的房子
  2. 画一个更复杂的雪花
  3. 画一个你自己的创意图案
  4. 尝试结合多个图形,创建一个场景

小提示

  • 使用 t.goto(x, y) 可以让海龟移动到指定坐标
  • 使用 t.circle(radius) 可以画圆形
  • 使用 t.dot(size) 可以画一个点
  • 使用 t.write(text) 可以写字

思考题

如果你想画一个正五角星,每次应该转多少度呢?


下一课我们将学习如何给图形填充颜色!🐢

Python 工具/在线模拟器/Python海龟绘图可视化
Python海龟绘图可视化 - https://www.cnbbx.com/python-editor/