• Python turtle学习笔记


    写一个你自己的turtle 库的学习笔记

    1.turtle库的简单介绍

    • turtle(海龟)库是turtle绘图体系的python实现,turtle库是一种标准库,是python自带的
    • turtle(海龟)是一种真实的存在,有一个海龟在窗口的正中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可改变颜色,宽度等

    2.turtle绘图窗体布局
    在电脑上会出现一个窗口,这个是turtle的画布,使用的最小单位是像素
    其中可以通过turtle.(width,height,startx,starty)来设置窗口初始位置及大小

    3.turtle的空间坐标体系–(绝对坐标和海龟坐标)
    绝对坐标是以屏幕为坐标系,中心位置为(0,0)

    可以用turtle.goto(x,y)来让海龟从当前位置走到(x,y)

    另外一种是海龟坐标,是以海龟本身为参考系

    turtle.fd(d)表示向海龟前方
    turtle.bk(d)表示向海龟后方
    turtle.circle(半径,弧度)表示海龟以左侧某一点为圆心的曲线方向

    4.turtle的角度坐标体系
    绝对坐标:turtle.seth(angle)来改变海龟的游走方向,只改变方向

    海龟坐标:
    turtle.left(angle),turtle.right(angle)来以海龟为参考系改变方向

    实例:
    import turtle
    turtle.left(45)
    turtle.fd(150)
    turtle.right(135)
    turtle.fd(300)
    turtle.left(135)
    turtle.fd(150)

    5.RGB色彩体系
    RGB是由红绿蓝三种颜色通道的颜色组合,每种颜色取值范围是0-255的整数或0-1的小数
    系统默认的是小数表示如果想切换成整数,可以使用
    turtle.colormode(1.0/255)来变换表示方式

    6.turtle画笔控制函数
    turtle.penup() #画笔抬起 别名turtle.pu()
    turtle.pendown()#画笔降下 别名turtle.pd()
    turtle.pensize(宽度) #画笔宽度
    别名turtle.width(宽度)
    turtle.pencolor(color) #画笔颜色 color为字符串 或者 R G B 的值

    turtle.speed(speed):设置画笔移动速度
    turtle.fillcolor(colorstring) 绘制图形的填充颜色
    turtle.color(color1,color2)同时设置画笔颜色color1, 填充颜色color

    7.turtle的运动控制函数
    可以控制海龟走直线走曲线
    turtle.forward(d) 

    8.turtle的方向控制函数

    turtle.setheading(angle)#改变行进方向

    别名turtle.seth()
    turtle.left(angle) 
    turtle.right(angle) 
     实例

    turtle 绘制玫瑰花

    #

    # 定义一个曲线绘制函数
    def DegreeCurve(n, r, d=1):
    for i in range(n):
    t.left(d)
    t.circle(r, abs(d))


    # 初始位置设定
    t.begin_fill()
    s = 0.2 # size
    t.setup(450 * 5 * s, 750 * 5 * s)
    t.pencolor("black")
    t.fillcolor("red")
    t.speed(100)
    t.penup()
    t.goto(0, 900 * s)
    t.pendown()

    # 绘制花朵形状
    t.begin_fill()
    t.circle(200 * s, 30)
    DegreeCurve(60, 50 * s)
    t.circle(200 * s, 30)
    DegreeCurve(4, 100 * s)
    t.circle(200 * s, 50)
    DegreeCurve(50, 50 * s)
    t.circle(350 * s, 65)
    DegreeCurve(40, 70 * s)
    t.circle(150 * s, 50)
    DegreeCurve(20, 50 * s, -1)
    t.circle(400 * s, 60)
    DegreeCurve(18, 50 * s)
    t.fd(250 * s)
    t.right(150)
    t.circle(-500 * s, 12)
    t.left(140)
    t.circle(550 * s, 110)
    t.left(27)
    t.circle(650 * s, 100)
    t.left(130)
    t.circle(-300 * s, 20)
    t.right(123)
    t.circle(220 * s, 57)
    t.end_fill()

    # 绘制花枝形状
    t.left(120)
    t.fd(280 * s)
    t.left(115)
    t.circle(300 * s, 33)
    t.left(180)
    t.circle(-300 * s, 33)
    DegreeCurve(70, 225 * s, -1)
    t.circle(350 * s, 104)
    t.left(90)
    t.circle(200 * s, 105)
    t.circle(-500 * s, 63)
    t.penup()
    t.goto(170 * s, -30 * s)
    t.pendown()
    t.left(160)
    DegreeCurve(20, 2500 * s)
    DegreeCurve(220, 250 * s, -1)

    # 绘制一个绿色叶子
    t.fillcolor('green')
    t.penup()
    t.goto(670 * s, -180 * s)
    t.pendown()
    t.right(140)
    t.begin_fill()
    t.circle(300 * s, 120)
    t.left(60)
    t.circle(300 * s, 120)
    t.end_fill()
    t.penup()
    t.goto(180 * s, -550 * s)
    t.pendown()
    t.right(85)
    t.circle(600 * s, 40)

    # 绘制另一个绿色叶子
    t.penup()
    t.goto(-150 * s, -1000 * s)
    t.pendown()
    t.begin_fill()
    t.rt(120)
    t.circle(300 * s, 115)
    t.left(75)
    t.circle(300 * s, 100)
    t.end_fill()
    t.penup()
    t.goto(430 * s, -1070 * s)
    t.pendown()
    t.right(30)
    t.circle(-600 * s, 35)
    t.done()
    t.end_fill()

  • 相关阅读:
    洛谷 1012 拼数(NOIp1998提高组)
    洛谷 1540 机器翻译
    洛谷 1328 生活大爆炸版石头剪刀布(NOIp2014提高组)
    洛谷 2820 局域网
    洛谷 1359 租用游艇
    洛谷 1195 口袋的天空
    洛谷 1316 丢瓶盖
    洛谷 1258 小车问题
    洛谷 1017 进制转换 (NOIp2000提高组T1)
    GYM
  • 原文地址:https://www.cnblogs.com/kwjl/p/12554213.html
Copyright © 2020-2023  润新知