赞
踩
目录
前言:海龟画图我们小学就学过了,emmmmmm,虽然这是篇技术文章,但是有些水话想说
我第一次接触编程,就是在海龟画图(小学的时候),同学们都在研究怎么让海龟动起来(按按钮那种),我无意间看到网上视频,可以将什么文件拖入海龟画图的界面,海龟就会自动动起来,我觉得好高级(而且省事),我开始上互联网(那时候我爸买了台台式电脑)
百度搜索具体怎么操作,发现有大佬将代码(哈哈那时候我还不知道这是代码,我觉得是神奇的文字)发上贴吧,
然后我把那些代码用一张纸抄下来,到学校电脑室里面将它用一个文本编辑器把它写进去,然后拖入海龟界面发现海龟不可以动,
然后我又回家继续找为什么不可以拖入,因为把重命名要改一下文件的后缀就可以实现这种投入这是我第一次知道怎么改文件的类型(我觉得有一个很重要的原因那就是我觉得我们当时小学电脑室可能已经把就是很多种语言的配置环境都已经配置好了)就很神奇
扯了这么多哈哈,开始今天复习
在1966年,Seymour Papert和Wally Feurzig发明了一种专门给儿童学习编程的语言——LOGO语言,它的特色就是通过编程指挥一个小海龟(turtle)在屏幕上绘图。
海龟绘图(Turtle Graphics)后来被移植到各种高级语言中,Python内置了turtle库,基本上100%复制了原始的Turtle Graphics的所有功能。
我们来看一个指挥小海龟绘制一个
- from turtle import *
- #设置笔刷宽度
- width(4)
-
- #前进
- forward(100)
- #右转90度:
- right(90)
-
- #笔刷颜色
- pencolor('red')
- forward(100)
- right(90)
-
-
- pencolor('green')
- forward(100)
- right(90)
-
- pencolor('blue')
- forward(100)
- right(90)
-
- # 调用done()使得窗口等待被关闭,否则将立刻关闭窗口:
- done()
- from turtle import *
-
- def drawStar(x,y):
- pu()
- goto(x,y)
- pd()
- seth(0)
- for i in range(5):
- fd(40)
- rt(144)
- for x in range(0,250,50):
- drawStar(x,0)
-
- done()
1)turtle.
rt
(角度)参数:角度- 一个数字(整数或浮点数)
2)
turtle.
pd
( )拉下笔——移动时绘图。
3)turtle.pu( )
将笔向上拉 - 移动时不绘图。4)
turtle.
fd
(距离)参数距离- 一个数字(整数或浮点数)
5)
turtle.
seth
( to_angle )参数
to_angle – 一个数字(整数或浮点数)
将海龟的方向设置为to_angle。以下是一些常见的度数方向:
标准模式
标志模式
0 - 东
0 - 北
90 - 北
90 - 东
180 - 西
180 - 南
270 - 南
270 - 西
6)done()
调用done()使得窗口等待被关闭,否则将立刻关闭窗口:
使用递归,可以绘制出非常复杂的图形。
- from turtle import *
-
- # 设置色彩模式是RGB:
- colormode(255)
-
- lt(90)
-
- lv = 14
- l = 120
- s = 45
-
- width(lv)
-
- # 初始化RGB颜色:
- r = 0
- g = 0
- b = 0
- pencolor(r, g, b)
-
- penup()
- bk(l)
- pendown()
- fd(l)
-
- def draw_tree(l, level):
- global r, g, b
- # save the current pen width
- w = width()
-
- # narrow the pen width
- width(w * 3.0 / 4.0)
- # set color:
- r = r + 1
- g = g + 2
- b = b + 3
- pencolor(r % 200, g % 200, b % 200)
-
- l = 3.0 / 4.0 * l
-
- lt(s)
- fd(l)
-
- if level < lv:
- draw_tree(l, level + 1)
- bk(l)
- rt(2 * s)
- fd(l)
-
- if level < lv:
- draw_tree(l, level + 1)
- bk(l)
- lt(s)
-
- # restore the previous pen width
- width(w)
-
- speed("fastest")
-
- draw_tree(l, 4)
-
- done()
- import turtle as t
- t.pensize(4)
- t.hideturtle()
- t.colormode(255)
- t.color((255, 155, 192), "pink")
- t.setup(840, 500)
- t.speed(20)
- # 鼻子
- t.pu()
- t.goto(-100, 100)
- t.pd()
- t.seth(-30)
- t.begin_fill()
- a = 0.4
- for i in range(120):
- if 0 <= i < 30 or 60 <= i < 90:
- a = a + 0.08
- t.lt(3) # 向左转3度
- t.fd(a) # 向前走a的步长
- else:
- a = a - 0.08
- t.lt(3)
- t.fd(a)
- t.end_fill()
- t.pu()
- t.seth(90)
- t.fd(25)
- t.seth(0)
- t.fd(10)
- t.pd()
- t.pencolor(255, 155, 192)
- t.seth(10)
- t.begin_fill()
- t.circle(5)
- t.color(160, 82, 45)
- t.end_fill()
- t.pu()
- t.seth(0)
- t.fd(20)
- t.pd()
- t.pencolor(255, 155, 192)
- t.seth(10)
- t.begin_fill()
- t.circle(5)
- t.color(160, 82, 45)
- t.end_fill()
- # 头
- t.color((255, 155, 192), "pink")
- t.pu()
- t.seth(90)
- t.fd(41)
- t.seth(0)
- t.fd(0)
- t.pd()
- t.begin_fill()
- t.seth(180)
- t.circle(300, -30)
- t.circle(100, -60)
- t.circle(80, -100)
- t.circle(150, -20)
- t.circle(60, -95)
- t.seth(161)
- t.circle(-300, 15)
- t.pu()
- t.goto(-100, 100)
- t.pd()
- t.seth(-30)
- a = 0.4
- for i in range(60):
- if 0 <= i < 30 or 60 <= i < 90:
- a = a + 0.08
- t.lt(3) # 向左转3度
- t.fd(a) # 向前走a的步长
- else:
- a = a - 0.08
- t.lt(3)
- t.fd(a)
- t.end_fill()
- # 耳朵
- t.color((255, 155, 192), "pink")
- t.pu()
- t.seth(90)
- t.fd(-7)
- t.seth(0)
- t.fd(70)
- t.pd()
- t.begin_fill()
- t.seth(100)
- t.circle(-50, 50)
- t.circle(-10, 120)
- t.circle(-50, 54)
- t.end_fill()
- t.pu()
- t.seth(90)
- t.fd(-12)
- t.seth(0)
- t.fd(30)
- t.pd()
- t.begin_fill()
- t.seth(100)
- t.circle(-50, 50)
- t.circle(-10, 120)
- t.circle(-50, 56)
- t.end_fill()
- # 眼睛
- t.color((255, 155, 192), "white")
- t.pu()
- t.seth(90)
- t.fd(-20)
- t.seth(0)
- t.fd(-95)
- t.pd()
- t.begin_fill()
- t.circle(15)
- t.end_fill()
- t.color("black")
- t.pu()
- t.seth(90)
- t.fd(12)
- t.seth(0)
- t.fd(-3)
- t.pd()
- t.begin_fill()
- t.circle(3)
- t.end_fill()
- t.color((255, 155, 192), "white")
- t.pu()
- t.seth(90)
- t.fd(-25)
- t.seth(0)
- t.fd(40)
- t.pd()
- t.begin_fill()
- t.circle(15)
- t.end_fill()
- t.color("black")
- t.pu()
- t.seth(90)
- t.fd(12)
- t.seth(0)
- t.fd(-3)
- t.pd()
- t.begin_fill()
- t.circle(3)
- t.end_fill()
- # 腮
- t.color((255, 155, 192))
- t.pu()
- t.seth(90)
- t.fd(-95)
- t.seth(0)
- t.fd(65)
- t.pd()
- t.begin_fill()
- t.circle(30)
- t.end_fill()
- # 嘴
- t.color(239, 69, 19)
- t.pu()
- t.seth(90)
- t.fd(15)
- t.seth(0)
- t.fd(-100)
- t.pd()
- t.seth(-80)
- t.circle(30, 40)
- t.circle(40, 80)
- # 身体
- t.color("red", (255, 99, 71))
- t.pu()
- t.seth(90)
- t.fd(-20)
- t.seth(0)
- t.fd(-78)
- t.pd()
- t.begin_fill()
- t.seth(-130)
- t.circle(100, 10)
- t.circle(300, 30)
- t.seth(0)
- t.fd(230)
- t.seth(90)
- t.circle(300, 30)
- t.circle(100, 3)
- t.color((255, 155, 192), (255, 100, 100))
- t.seth(-135)
- t.circle(-80, 63)
- t.circle(-150, 24)
- t.end_fill()
- # 手
- t.color((255, 155, 192))
- t.pu()
- t.seth(90)
- t.fd(-40)
- t.seth(0)
- t.fd(-27)
- t.pd()
- t.seth(-160)
- t.circle(300, 15)
- t.pu()
- t.seth(90)
- t.fd(15)
- t.seth(0)
- t.fd(0)
- t.pd()
- t.seth(-10)
- t.circle(-20, 90)
- t.pu()
- t.seth(90)
- t.fd(30)
- t.seth(0)
- t.fd(237)
- t.pd()
- t.seth(-20)
- t.circle(-300, 15)
- t.pu()
- t.seth(90)
- t.fd(20)
- t.seth(0)
- t.fd(0)
- t.pd()
- t.seth(-170)
- t.circle(20, 90)
- # 脚
- t.pensize(10)
- t.color((240, 128, 128))
- t.pu()
- t.seth(90)
- t.fd(-75)
- t.seth(0)
- t.fd(-180)
- t.pd()
- t.seth(-90)
- t.fd(40)
- t.seth(-180)
- t.color("black")
- t.pensize(15)
- t.fd(20)
- t.pensize(10)
- t.color((240, 128, 128))
- t.pu()
- t.seth(90)
- t.fd(40)
- t.seth(0)
- t.fd(90)
- t.pd()
- t.seth(-90)
- t.fd(40)
- t.seth(-180)
- t.color("black")
- t.pensize(15)
- t.fd(20)
- # 尾巴
- t.pensize(4)
- t.color((255, 155, 192))
- t.pu()
- t.seth(90)
- t.fd(70)
- t.seth(0)
- t.fd(95)
- t.pd()
- t.seth(0)
- t.circle(70, 20)
- t.circle(10, 330)
- t.circle(70, 30)
- t.exitonclick()
- import turtle
- t=turtle.Turtle()
- turtle.Turtle().screen.delay(0)
- tleft=turtle.Turtle()
- #第一部分
- t.penup()
- t.goto(0,0)
- t.pendown()
- t.left(20)
- t.forward(110)
- t.left(25)
- t.forward(40)
- t.left(100)
- t.circle(180,20)
- t.right(120)
- t.forward(250)
- t.left(165)
- t.forward(250)
- t.right(100)
- t.forward(35)
- t.left(70)
- t.forward(45)
- t.left(70)
- t.forward(120)
- t.left(70)
- t.forward(80)
- t.left(80)
- t.forward(80)
- t.left(68)
- t.forward(120)
- t.left(180)
- t.forward(78)
- t.right(68)
- t.forward(60)
- t.right(75)
- t.forward(60)
- t.right(110)
- t.forward(15)
- t.left(38)
- t.forward(65)
- t.right(73)#五边形的直边
- t.forward(35)
- t.right(70)
- t.forward(65)
- t.right(68)
- t.forward(50)
- t.right(80)
- t.forward(50)
- t.penup()
- t.goto(-65,68)
- t.pendown()
- t.right(7)
- t.forward(350)
- t.right(165)
- t.forward(330)
- t.penup()
- t.goto(64,65)
- t.pendown()
- t.left(75)
- t.forward(350)
- t.left(165)
- t.forward(330)
- t.penup()
- t.goto(300,500)
- #第二部分
- tleft.left(180)
- tleft.right(20)
- tleft.forward(110)
- tleft.right(25)
- tleft.forward(40)
- tleft.right(100)
- tleft.circle(-180,20)
- tleft.left(120)
- tleft.forward(250)
- tleft.right(165)
- tleft.forward(250)
- tleft.left(100)
- tleft.forward(35)
- tleft.penup()
- tleft.goto(0,0)
- tleft.pendown()
- tleft.left(20)
- tleft.penup()
- tleft.forward(18)
- tleft.pendown()
- tleft.forward(50)#额头竖线
- tleft.penup()
- tleft.forward(110)#消除竖线
- tleft.pendown()
- tleft.left(90)
- tleft.forward(30)
- tleft.right(90)
- tleft.forward(60)
- tleft.right(90)
- tleft.forward(60)
- tleft.right(90)
- tleft.forward(60)
- tleft.right(90)
- tleft.forward(40)
- tleft.penup()
- tleft.forward(30)
- tleft.pendown()
- tleft.left(90)
- tleft.forward(30)
- tleft.right(180)
- tleft.forward(100)
- tleft.right(90)
- tleft.forward(80)
- tleft.right(90)
- tleft.forward(100)
- tleft.penup()
- tleft.goto(150,70)
- tleft.pendown()
- tleft.left(100)
- tleft.forward(40)
- tleft.right(80)
- tleft.circle(-333,40)
- tleft.right(160)
- tleft.forward(230)
- #右半部分
- tleft.left(100)
- tleft.forward(40)
- tleft.left(80)
- tleft.forward(20)
- tleft.left(100)
- tleft.forward(30)
- tleft.right(100)
- tleft.forward(20)
- tleft.right(80)
- tleft.forward(30)
- tleft.left(80)
- tleft.forward(20)
- tleft.left(100)
- tleft.forward(30)
- tleft.right(100)
- tleft.forward(20)
- tleft.right(80)
- tleft.forward(30)
- tleft.left(80)
- tleft.forward(20)
- tleft.left(100)
- tleft.forward(30)
- tleft.right(100)
- tleft.forward(20)
- tleft.right(80)
- tleft.forward(30)
- tleft.left(80)
- tleft.forward(20)
- tleft.left(100)
- tleft.forward(30)
- tleft.right(100)
- tleft.forward(20)
- tleft.right(80)
- tleft.forward(30)
- tleft.left(80)
- tleft.forward(20)
- tleft.left(100)
- tleft.forward(30)
- tleft.right(100)
- tleft.forward(20)
- tleft.right(80)
- tleft.forward(30)
- tleft.left(80)
- tleft.forward(20)
- tleft.left(100)
- tleft.forward(30)
- tleft.right(100)
- tleft.forward(20)
- tleft.right(80)
- tleft.forward(30)
- #右下部分
- tleft.left(70)
- tleft.forward(30)
- tleft.right(110)
- tleft.forward(40)
- tleft.right(60)
- tleft.forward(100)
- tleft.right(30)
- tleft.circle(200,20)
- tleft.left(10)
- tleft.forward(80)
- #右下部分goto
- tleft.penup()
- tleft.goto(145,-198)
- tleft.pendown()
- tleft.left(90)
- tleft.forward(30)
- tleft.right(30)
- tleft.forward(40)
- tleft.right(150)
- tleft.forward(30)
- tleft.backward(30)
- tleft.left(90)
- tleft.forward(100)
- tleft.right(90)
- tleft.forward(30)
- tleft.backward(30)
- tleft.left(90)
- tleft.right(30)
- tleft.circle(200,20)
- tleft.left(10)
- tleft.forward(50)
- #第三部分脸
- t2=turtle.Turtle()
- t2.penup()
- t2.goto(0,-80)
- #尖角
- t2.circle(150,extent=90)
- t2.pendown()
- t2.circle(150,extent=30)
- t2.penup()
- t2.circle(150,extent=18)
- t2.pendown()
- t2.circle(150,extent=27)
- t2.penup()
- t2.circle(150,extent=30)
- t2.pendown()
- t2.circle(150,extent=27)
- t2.penup()
- t2.circle(150,extent=18)
- t2.pendown()
- t2.circle(150,extent=30)
- t2.right(100)
- t2.forward(40)
- #左脸夹
- t2.left(80)
- t2.circle(333,40)
- t2.left(160)
- t2.forward(230)
- #左半部分
- t2.right(100)
- t2.forward(40)
- t2.right(80)
- t2.forward(20)
- t2.right(100)
- t2.forward(30)
- t2.left(100)
- t2.forward(20)
- t2.left(80)
- t2.forward(30)
- t2.right(80)
- t2.forward(20)
- t2.right(100)
- t2.forward(30)
- t2.left(100)
- t2.forward(20)
- t2.left(80)
- t2.forward(30)
- t2.right(80)
- t2.forward(20)
- t2.right(100)
- t2.forward(30)
- t2.left(100)
- t2.forward(20)
- t2.left(80)
- t2.forward(30)
- t2.right(80)
- t2.forward(20)
- t2.right(100)
- t2.forward(30)
- t2.left(100)
- t2.forward(20)
- t2.left(80)
- t2.forward(30)
- t2.right(80)
- t2.forward(20)
- t2.right(100)
- t2.forward(30)
- t2.left(100)
- t2.forward(20)
- t2.left(80)
- t2.forward(30)
- t2.right(80)
- t2.forward(20)
- t2.right(100)
- t2.forward(30)
- t2.left(100)
- t2.forward(20)
- t2.left(80)
- t2.forward(30)
- t2.right(70)
- t2.forward(30)
- t2.left(110)
- t2.forward(40)
- t2.left(60)
- t2.forward(100)
- t2.left(30)
- t2.circle(-200,20)
- t2.right(10)
- t2.forward(80)
- t2.penup()
- t2.goto(-145,-198)#左脸颊
- t2.pendown()
- t2.right(90)
- t2.forward(30)
- t2.left(30)
- t2.forward(40)
- t2.left(150)
- t2.forward(30)
- t2.right(180)
- t2.forward(30)
- t2.left(90)
- t2.forward(100)
- t2.left(90)
- t2.forward(30)
- t2.left(180)
- t2.forward(30)
- t2.left(120)
- t2.circle(-200,20)
- t2.right(10)
- t2.forward(50)
- #左眼
- t2.right(135)
- t2.forward(70)
- t2.left(50)
- t2.forward(40)
- t2.left(20)
- t2.forward(20)
- t2.penup()
- t2.goto(-100,28)
- t2.pendown()
- t2.right(70)
- t2.forward(65)
- t2.left(50)
- t2.forward(40)
- t2.left(40)
- t2.forward(20)
- #左眼带
- t2.penup()
- t2.goto(-105,-10)
- t2.pendown()
- t2.right(100)
- t2.circle(120,extent=20)
- t2.circle(60,extent=80)
- t2.penup()
- t2.goto(-105,-13)
- t2.pendown()
- t2.right(100)
- t2.circle(120,extent=20)
- t2.circle(60,extent=80)
- t2.penup()
- t2.goto(-70,-40)
- t2.pendown()
- t2.left(10)
- t2.forward(30)
- t2.penup()
- t2.goto(-10,-40)
- t2.pendown()
- t2.left(35)
- t2.forward(30)
- t2.penup()
- t2.goto(-80,30)
- t2.pendown()
- t2.right(130)
- t2.forward(47)
- t2.left(50)
- t2.forward(35)
- t2.penup()
- t2.goto(-60,-45)
- t2.pendown()
- t2.right(98)
- t2.forward(60)
- t2.left(20)
- t2.forward(80)
- t2.left(70)
- t2.forward(10)
- t2.left(90)
- t2.forward(50)
- t2.right(60)
- t2.forward(30)
- t2.right(60)
- t2.forward(30)
- t2.right(60)
- t2.forward(50)
- t2.left(90)
- t2.forward(10)
- t2.left(75)
- t2.forward(80)
- t2.left(15)
- t2.forward(60)
- t2.penup()
- t2.goto(-80,-140)
- t2.pendown()
- t2.right(150)
- t2.circle(85,extent=45)
- t2.left(15)
- t2.forward(70)
- t2.left(15)
- t2.circle(55,extent=55)
- t2.penup()
- t2.goto(0,-175)
- t2.pendown()
- t2.left(18)
- t2.forward(170)
- #右眼
- tleft.left(135)
- tleft.forward(70)
- tleft.right(50)
- tleft.forward(40)
- tleft.right(20)
- tleft.forward(20)
- tleft.penup()
- tleft.goto(100,28)
- tleft.pendown()
- tleft.left(70)
- tleft.forward(65)
- tleft.right(50)
- tleft.forward(40)
- tleft.right(40)
- tleft.forward(20)
- #右眼带
- tleft.penup()
- tleft.goto(105,-10)
- tleft.pendown()
- tleft.left(100)
- tleft.circle(-120,extent=20)
- tleft.circle(-60,extent=80)
- tleft.penup()
- tleft.goto(105,-13)
- tleft.pendown()
- tleft.left(100)
- tleft.circle(-120,extent=20)
- tleft.circle(-60,extent=80)
- #右眼睛
- tleft.penup()
- tleft.goto(70,-40)
- tleft.pendown()
- tleft.right(10)
- tleft.forward(30)
- tleft.penup()
- tleft.goto(10,-40)
- tleft.pendown()
- tleft.right(35)
- tleft.forward(30)
- tleft.penup()
- tleft.goto(80,30)
- tleft.pendown()
- tleft.left(130)
- tleft.forward(47)
- tleft.right(50)
- tleft.forward(35)
- #鼻子
- tleft.penup()
- tleft.goto(0,-70)
- tleft.pendown()
- tleft.left(30)
- tleft.forward(20)
- tleft.left(72)
- tleft.forward(10)
- tleft.left(108)
- tleft.forward(20)
- tleft.right(42)
- tleft.forward(20)
- tleft.left(108)
- tleft.forward(10)
- tleft.left(72)
- tleft.forward(20)
- tleft.penup()
- tleft.goto(0,-90)
- tleft.pendown()
- tleft.left(42)
- tleft.forward(20)
- tleft.left(72)
- tleft.forward(10)
- tleft.left(108)
- tleft.forward(20)
- tleft.right(42)
- tleft.forward(20)
- tleft.left(108)
- tleft.forward(10)
- tleft.left(72)
- tleft.forward(20)
- tleft.penup()
- tleft.goto(200,500)
- turtle.done()
参考:python turtle绘图-案例集锦(小猪佩奇、哆啦A梦、小黄人、樱花树、皮卡丘、汉诺塔、高达、星空等)_July__July的博客-CSDN博客_turtle绘图案例
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。