lesson2turtle库

turtle知识点

1. 画布

1.1 绘图坐标系

1).turtle.setup(width,height,startx,starty)

作用:设置主窗口的大小和位置。默认参数值保存在配置字典中,可通过 turtle.cfg 文件进行修改。

  1. width: 窗口宽度,如果值是整数,表示像素值;如果值是小数,表示窗口宽度与屏幕的比例,默认为屏幕的 50%。

  2. height : 窗口高度,如果值是整数,表示像素值;如果值是小数,表示窗口高度与屏幕的比例,默认为屏幕的 75%。

  3. startx: 如为正值,表示初始位置距离屏幕左边缘多少像素,负值表示距离右边缘,如果值是None,窗口位于屏幕水平中央。

  4. starty: 如为正值,表示初始位置距离屏幕上边缘多少像素,负值表示距离下边缘,如果值是None,窗口位于屏幕垂直中央。

  5. 绘图坐标系

  6. 实例:

    import turtle, time
    turtle.screensize(800, 600, "pink")
    turtle.screensize() #返回默认大小(400, 300)
    time.sleep(3)
    
2).turtle.screensize(canvwidth, canvheight, bg)

screensize包括3个参数,定义了画板的大小和背景色

  1. canvwidth – 正整型数,以像素表示画布的新宽度值

  2. canvheight – 正整型数,以像素表示画面的新高度值

  3. bg – 颜色字符串或颜色元组,新的背景颜色

  4. 实例:

    1. import turtle, time
       turtle.screensize(800, 600, "pink")
       turtle.screensize() #返回默认大小(400, 300)
       time.sleep(3)
    

5.呈现效果

3).注意:

如未指定任何参数,则返回当前的 (canvaswidth, canvasheight)。否则改变作为海龟绘图场所的画布大小。不改变绘图窗口。要观察画布的隐藏区域,可以使用滚动条。通过此方法可以令之前绘制于画布之外的图形变为可见。
想要改变窗口的大小,改变screensize不行,需要改变setup。

2. 画笔

turtle.penup()   # 抬起画笔,之后移动画笔不绘制形状。
turtle.pendown() # 落下画笔,之后移动画笔将绘制形状。
turtle.pensize() # 用来设置画笔尺寸;turtle.width()设置画笔宽度,当无参数输入时返回当前画笔宽度。
turtle.pencolor()# 没有参数传入返回当前画笔颜色。turtle.pencolor((r,g,b))设置当前画笔颜色。
turtle.speed()   # 设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。

2.1 RGB色彩

1).常用颜色:
英文名称RGB整数值RGB小数值中文名称
white255,255,2551,1,1白色
yellow255,255,2551,1,0黄色
magenta255,0,2551,0,1洋红
cyan0,255,2550,1,1青色
blue0,0,2550,0,1蓝色
black0,0,00,0,0黑色
purple160,32,2400.63,0.13,0.94紫色

实例:

# 颜色字符串
turtle.pencolor('purple')  # 小写
# RGB小数值
turtle.pencolor(0.63,0.13,0.94) #三个小数值
# RGB数值元组  
turtle.pencolor((0.63,0.13,0.94))  # 一个三元素元组
2).RGB (RedAs Integer ,GreenAs Integer ,BlueAs Integer )
部分部分
red必要参数;Integer类型。数值范围从 0 到 255,表示颜色的红色成份
green必要参数;Integer类型。数值范围从 0 到 255,表示颜色的绿色成份
blue必要参数;Integer类型。数值范围从 0 到 255,表示颜色的蓝色成份
3).注意:
  • 使用turtle.colormode(mode)来调整海龟的颜色,默认采用RGB小数值,可以切换为整数值
  • 如果其中有一个参数的值超过 255 ,不会显示任何错误,但这个参数会被当做 255

3. 绘图命令方法

3.1 画笔运动方法

  • turtle.forward(distance)

  • turtle.backward(distance)

  • turtle.right(range)

  • turtle.left(range)

  • turtle.goto(x,y)

  • turtle.penup()

  • turtle.pendown()

  • turtle.speed()

  • turtle.circle(radius, extent=None, steps=None)

    #绘制一个 radius 指定半径的圆。圆心在海龟左边 radius 个单位;extent 为一个夹角,用来决定绘制圆的一部分。如未指定 extent*则绘制整个圆。如果 *extent 不是完整圆周,则以当前画笔位置为一个端点绘制圆弧。如果 radius 为正值则朝逆时针方向绘制圆弧,否则朝顺时针方向。最终海龟的朝向会依据 extent 的值而改变。

3.2 画笔控制方法

  • turtle.pensize(width=None)
  • turtle.fillcolor(*args)
  • turtle.color(*args)
  • turtle.filling()
  • turtle.begin_fill()
  • turtle.end_fill()
  • turtle.hideturtle()
  • turtle.showturtle()
  • turtle.tracers()

3.3 全局控制方法

  • turtle.clear()
  • turtle.reset()
  • turtle.undo()

3.4 其他一些特殊方法

原文链接:https://blog.csdn.net/adminkeys/article/details/112713640

4. turtle库快速参考

turtle库快速参考

5. 一些实例

5.1 画爱心

#------导入库------------
import turtle

#------定义子函数--------
def hart_arc():
    for i in range(200):
        turtle.right(1)
        turtle.forward(1)
def move_pen_position(x,y):
    turtle.hideturtle()
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()
    
#--------主函数-----------
turtle.color('red')
turtle.begin_fill()
turtle.speed(100)
move_pen_position(x=0,y=-180)
turtle.left(140)
# 画爱心圆弧
turtle.forward(114)
hart_arc() # 左侧圆弧
turtle.left(120)
hart_arc() # 右侧圆弧
# 画心形直线( 右下方 )
turtle.forward(114)
turtle.end_fill() 
# 点击窗口关闭程序
window = turtle.Screen()
window.exitonclick()

5.2画

6. 课堂内容

在这里插入图片描述

7. 课后作业

在这里插入图片描述

7.1 画微软logo

import turtle
#第一个正方形
turtle.speed(100)
turtle.color("white","green")
turtle.pensize(20)
turtle.begin_fill()
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.end_fill()
#第二个正方形
turtle.color("white","blue")
turtle.pensize(20)
turtle.begin_fill()
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.end_fill()
#第三个正方形
turtle.color("white","yellow")
turtle.pensize(20)
turtle.begin_fill()
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.right(90)
turtle.forward(150)
turtle.end_fill()
#第四个正方形
turtle.color("white","red")
turtle.pensize(20)
turtle.begin_fill()
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.left(90)
turtle.forward(150)
turtle.end_fill()

7.2 画一个五角星

import turtle

turtle.speed(100)
turtle.right(180)
turtle.penup()
turtle.forward(100)

turtle.color("red","red")
turtle.begin_fill()

turtle.pendown()
turtle.left(180)
turtle.forward(200)
turtle.right(180-36)
turtle.forward(200)
turtle.right(180-36)
turtle.forward(200)
turtle.right(180-36)
turtle.forward(200)
turtle.right(180-36)
turtle.forward(200)
turtle.end_fill()
turtle.hideturtle()

7.3心跳的感觉

#--------导入库--------
import turtle
#--------定位----------
turtle.speed(5)
turtle.hideturtle()
turtle.penup()
turtle.goto(-400,0)
turtle.pendown()
#出现
turtle.color("red")
for i in range(2):
    turtle.forward(70)
    turtle.left(84)
    turtle.forward(150)
    turtle.right(168)
    turtle.forward(250)
    turtle.left(168)
    turtle.forward(150)
    turtle.right(168)
    turtle.forward(50)

    turtle.left(84)
    turtle.forward(50)

turtle.goto(0,0)

#------定义子函数--------
def hart_arc():
    for i in range(200):
        turtle.right(1)
        turtle.forward(1)
def move_pen_position(x,y):
    turtle.hideturtle()
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()
    
#--------主函数-----------
turtle.color('red')
turtle.speed(100)
move_pen_position(x=0,y=0)
turtle.left(140)
# 画爱心圆弧
turtle.forward(114)
hart_arc() # 左侧圆弧
turtle.left(120)
hart_arc() # 右侧圆弧
# 画心形直线( 右下方 )
turtle.forward(114)

turtle.left(100)
turtle.speed(5)
turtle.hideturtle()
turtle.forward(200)
turtle.color("red")
for i in range(2):
    turtle.forward(70)
    turtle.left(84)
    turtle.forward(150)
    turtle.right(168)
    turtle.forward(250)
    turtle.left(168)
    turtle.forward(150)
    turtle.right(168)
    turtle.forward(50)

    turtle.left(84)
    turtle.forward(50)

7.4画国旗

#--------------- 载入库----------------
import turtle
#---------------子函数定义-------------
#-----画国旗面------
def pole(x,y,a,b,c):
    turtle.hideturtle()
    turtle.penup()
    turtle.goto(x,y)
    turtle.pendown()
    turtle.speed(0)
    turtle.color("red","red")
    turtle.begin_fill()
    for i in range(2):
        turtle.forward(a)
        turtle.left(c)
        turtle.forward(b)
        turtle.left(c)
    turtle.end_fill()

#------画星星-----
def star(x,y,angle,a,b):
    turtle.penup()
    turtle.goto(x,y)
    turtle.pendown()
    turtle.setheading(angle)
    turtle.color("yellow","yellow")
    turtle.begin_fill()
    for i in range(5):
        turtle.forward(a)
        turtle.right(b)
    turtle.end_fill()

#--------------- 主程序----------------
pole(-100,-300,288,192,90)    #画旗面
star(-80,-160,0,60,144)       #画大星星
star(-3,-130,25,15,144)        #画小星星1
star(13,-160,25,15,144)        #画小星星2
star(13,-190,25,15,144)        #画小星星3
star(-3,-215,25,15,144)        #画小星星4


w","yellow")
    turtle.begin_fill()
    for i in range(5):
        turtle.forward(a)
        turtle.right(b)
    turtle.end_fill()

#--------------- 主程序----------------
pole(-100,-300,288,192,90)    #画旗面
star(-80,-160,0,60,144)       #画大星星
star(-3,-130,25,15,144)        #画小星星1
star(13,-160,25,15,144)        #画小星星2
star(13,-190,25,15,144)        #画小星星3
star(-3,-215,25,15,144)        #画小星星4
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值