turtle(Python)

109 阅读2分钟

background(背景)

1966年 Seymour Papert 和Wally Feurzig 开发了一种供儿童学习的编程语言,—LOGO语言,后来被移植到各种高级语言中。

references(参考材料)

廖雪峰:https://www.liaoxuefeng.com/wiki/1016959663602400/1249593505347328
turtle官网:https://docs.python.org/3.3/library/turtle.html#turtle.title

case

  • 不规则图形
  • 五角星
  • 爱心
  1. 使用turtle绘制不规则图形
import turtle
import time

t = turtle.Pen()
for i in range(6):
    t.color('red', '#fff')
    t.forward(100)
    t.right(60)
    time.sleep(.25)
    if abs(t.pos()) < 1:
        break

turtle.done()
  • 换一种写法
# 导入 turtle 模块
from turtle import *
# 导入time模块
import time
# 开始绘制
begin_fill()
while True:
    # 绘制痕迹color和 tutle color
    color("red", "#fff")
    # 直行 100
    forward(100)
    # 向右转 60°
    right(60)
    # 绘制一行结束休息 .25s
    time.sleep(.25)
    if abs(pos()) < 1:
        break
# 绘制结束
end_fill()
# 绘制结束 防止窗口关闭
done()

结果

image.png
2. 绘制五角星

# 导入turtle
from turtle import *
# 导入时间模块
import time
# 速度
speed(2)
# 填充颜色
fillcolor("red")
# 画笔宽度
pensize(1)
# 画笔颜色
pencolor("red")
# 开始绘制
begin_fill()
# 循环5次
for i in range(5):
    # 前进400
    forward(400)
    # 向右转144°
    right(144)
    # 让海龟休息.25s
    time.sleep(.25)
# 结束绘制
end_fill()
# 停止绘制
done()

结果

image.png
3. 爱心

# 导入 turtle
import turtle as t
# 画笔速度
t.speed(5)
# 屏幕宽度
t.setup(1000, 800)
# 画笔宽度
t.pensize(4)
# 画笔颜色
t.pencolor("red")
# 填充颜色
t.fillcolor("red")
# 隐藏画笔
t.hideturtle()
# 开始绘制
t.begin_fill()
# 向左 45° 开始绘制
t.left(45)
# 前进80
t.forward(80)
# 绘制宽高 35 210 圆形
t.circle(35, 210)
# 向右前方开始绘制
t.right(148)
# 绘制宽高 35 210 圆形
t.circle(35, 210)
# 前进80
t.forward(80)
# 结束绘制
t.end_fill()
# 结束
t.done()

结果

image.png
4. other

from turtle import *
color('red', 'yellow')
# 开始填充
begin_fill()
while True:
    forward(200)
    left(130)
    if abs(pos()) < 1:
        break
end_fill()

done()

image.png

from turtle import *
# 颜色填充
color('red', 'yellow')
# 开始填充
begin_fill()
# 画笔速度
speed(10)
# 隐藏画笔
hideturtle()
while True:
    forward(200)
    left(170)
    if abs(pos()) < 1:
        break
end_fill()

done()

image.png
5. 三角形
和上面的 other 区别就是一行 left(120)代码

from turtle import *
# 颜色填充
color('red', 'yellow')
# 开始填充
begin_fill()
# 画笔速度
speed(10)
# 隐藏画笔
hideturtle()
while True:
    forward(200)
    left(120)
    if abs(pos()) < 1:
        break
end_fill()

done()

image.png