• Python学习之turtle绘图篇


    画一个红色的五角星

    from turtle import *
    color('red','red')
    begin_fill()
    for i in range(5):
        fd(200)
        rt(144)
    
    end_fill()
    done()

    效果图:

    画一条蟒蛇

    #PythonDraw.py
    import turtle
    #turtle.setup(650,350,200,200)
    turtle.penup()
    turtle.fd(-250)
    turtle.pendown()
    turtle.pensize(25)
    turtle.pencolor("purple")
    turtle.seth(-40)
    for i in range(4):
        turtle.circle(40,80)
        turtle.circle(-40,80)
    turtle.circle(40,80/2)
    turtle.fd(40)
    turtle.circle(16,180)
    turtle.fd(40*2/3)

    效果图:

    画一组内切圆

    import turtle
    turtle.pensize(2)
    turtle.circle(10)
    turtle.circle(40)
    turtle.circle(80)
    turtle.circle(120)

    效果图:

    画一个社会人小猪佩奇,代码是借鉴某位大佬的

    from turtle import *
    def nose(x,y):
        pu()
        goto(x,y)
        pd()
        seth(-30)
        begin_fill()
        a=0.4
        for i in range(120):
            if 0<=i<30 or 60<=i<90:
                a=a+0.08
                lt(3)
                fd(a)
            else:
                a=a-0.08
                lt(3)
                fd(a)
        end_fill()
    
        pu()
        seth(90)
        fd(25)
        seth(0)
        fd(10)
        pd()
        pencolor(255,155,192)
        seth(10)
        begin_fill()
        circle(5)
        color(160,82,45)
        end_fill()
    
        pu()
        seth(0)
        fd(20)
        pd()
        pencolor(255,155,192)
        seth(10)
        begin_fill()
        circle(5)
        color(160,82,45)
        end_fill()
    
    def head(x,y):
        color((255,155,192),"pink")
        pu()
        goto(x,y)
        seth(0)
        pd()
        begin_fill()
        seth(180)
        circle(300,-30)
        circle(100,-60)
        circle(80,-100)
        circle(150,-20)
        circle(60,-95)
        seth(161)
        circle(-300,15)
        pu()
        goto(-100,100)
        pd()
        seth(-30)
        a=0.4
        for i in range(60):
            if 0<=i<30 or 60<=i<90:
                a=a+0.08
                lt(3)
                fd(a)
            else:
                a=a-0.08
                lt(3)
                fd(a)
        end_fill()
    
    def ears(x,y):
        color((255,155,192),"pink")
        pu()
        goto(x,y)
        pd()
        begin_fill()
        seth(100)
        circle(-50,50)
        circle(-10,120)
        circle(-50,54)
        end_fill()
    
        pu()
        seth(90)
        fd(-12)
        seth(0)
        fd(30)
        pd()
        begin_fill()
        seth(100)
        circle(-50,50)
        circle(-10,120)
        circle(-50,56)
        end_fill()
    
    def eyes(x,y):
        color((255,155,192),"white")
        pu()
        seth(90)
        fd(-20)
        seth(0)
        fd(-95)
        pd()
        begin_fill()
        circle(15)
        end_fill()
    
        color("black")
        pu()
        seth(90)
        fd(12)
        seth(0)
        fd(-3)
        pd()
        begin_fill()
        circle(3)
        end_fill()
    
        color((255,155,192),"white")
        pu()
        seth(90)
        fd(-25)
        seth(0)
        fd(40)
        pd()
        begin_fill()
        circle(15)
        end_fill()
    
        color("black")
        pu()
        seth(90)
        fd(12)
        seth(0)
        fd(-3)
        pd()
        begin_fill()
        circle(3)
        end_fill()
    
    def cheek(x,y):
        color((255,155,192))
        pu()
        goto(x,y)
        pd()
        seth(0)
        begin_fill()
        circle(30)
        end_fill()
    
    def mouth(x,y):
        color(239,69,19)
        pu()
        goto(x,y)
        pd()
        seth(-80)
        circle(30,40)
        circle(40,80)
    
    def body(x,y):
        color("red",(255,99,71))
        pu()
        goto(x,y)
        pd()
        begin_fill()
        seth(-130)
        circle(100,10)
        circle(300,30)
        seth(0)
        fd(230)
        seth(90)
        circle(300,30)
        circle(100,3)
        color((255,155,192),(255,100,100))
        seth(-135)
        circle(-80,63)
        circle(-150,24)
        end_fill()
    
    def hands(x,y):
        color((255,155,192))
        pu()
        goto(x,y)
        pd()
        seth(-160)
        circle(300,15)
        pu()
        seth(90)
        fd(15)
        seth(0)
        fd(0)
        pd()
        seth(-10)
        circle(-20,90)
    
        pu()
        seth(90)
        fd(30)
        seth(0)
        fd(237)
        pd()
        seth(-20)
        circle(-300,15)
        pu()
        seth(90)
        fd(20)
        seth(0)
        fd(0)
        pd()
        seth(-170)
        circle(20,90)
    
    def foot(x,y):
        pensize(10)
        color((240,128,128))
        pu()
        goto(x,y)
        pd()
        seth(-90)
        fd(40)
        seth(-180)
        color("black")
        pensize(15)
        fd(20)
    
        pensize(10)
        color((240,128,128))
        pu()
        seth(90)
        fd(40)
        seth(0)
        fd(90)
        pd()
        seth(-90)
        fd(40)
        seth(-180)
        color("black")
        pensize(15)
        fd(20)
    
    def tail(x,y):
        pensize(4)
        color((255,155,192))
        pu()
        goto(x,y)
        pd()
        seth(0)
        circle(70,20)
        circle(10,330)
        circle(70,30)
        
        
    def setting():
        pensize(4)
        hideturtle()
        colormode(255)
        color((255,155,192),"pink")
        setup(840,500)
        speed(10)
    
    def main():
        setting()
        nose(-100,100)
        head(-69,167)
        ears(0,160)
        eyes(0,140)
        cheek(80,10)
        mouth(-20,30)
        body(-32,-8)
        hands(-56,-45)
        foot(2,-177)
        tail(148,-155)
        done()
    
    main()
                

    效果极佳:

    简单总结一下好了,其实turtle库还是非常有用的,以后可以画张很有创意的图片去表白女神了,讲不好那天就用上了呢:

    显示器和turtle窗体的左上角都是原点
    turtle.setup(width,height,startx,starty)设置窗体大小及位置,后面两个参数可选,非必需
    空间坐标:绝对坐标:右方向x轴,上方向为y轴,正中心为原点,turtle.goto(x,y)让在任何位置的海龟到达指定的位置
    海龟坐标:turtle.fd(d)海龟向前行多少像素
    turtle.bk(d)向海龟的反方向运行
    turtle.circle(r,angle)以海龟左边的某一点为圆心进行曲线运行
    角度坐标:绝对角度:turtle.seth(angle)angle为绝对度数,表示改变海龟的运行方向
    海龟角度:turtle.right(angle),turtle.left(angle)改变海龟的运行方向
    RGB体系:turtle.colormode(mode)mode=1.0则改用0和1表示,mode=255则改用255和0表示,默认为小数
    库引用:import <库名>,from <库名> import *或者from <库名> import <函数名>,import <库名> as <库别名>
    画笔控制函数:turtle.penup()别名:turtle.pu()抬起画笔,turtle.pendown()别名:turtle.pd()落下画笔,turtle.pensize(width)别名:turtle.width(width)设置画笔宽度,turtle.pencolor(color)设置画笔颜色,color有三种方式,颜色字符串,或者RGB小数值,或者RGB元组值,例如:turtle.pencolor((0.63,0.13,0.94))
    运动控制函数:turtle.circle(r,angle),r(海龟左方向)表示半径,angle表示绘制的角度,默认是360度
    方向控制函数:turtle.seth(angle)改变海龟的行进方向,顺时针转向

  • 相关阅读:
    如何实现一个php框架系列文章【3】支持psr4的自动加载类
    JavaScript中valueOf函数与toString方法的使用
    js中null和undefined
    学习笔记(二)JavaScript基本概念(语法,数据类型,控制语句,函数)
    学习笔记(-)在html中使用javascript
    将用户输入的字符串反向输出到页面上,并且要求将其中的小写字母转换成大写字母。
    设计一个表单,放入两个按钮,单击它们时将显示不同问候语。
    编写一个函数,在页面上输出1~1000之间所有能同时被3,5,7整除的证书,并要求每行显示6个这样的数
    innerHTML、outerHTML、innerText、outerText的用法与
    web笔试题(3)
  • 原文地址:https://www.cnblogs.com/andrew3/p/10604218.html
Copyright © 2020-2023  润新知