python绘图库turtle

这两篇文章讲的不错

https://www.cnblogs.com/nowgood/p/turtle.html

https://www.cnblogs.com/bravestarrhu/p/8287261.html

画一个美国队长标识

#coding=utf-8
#turtle是python自带的工具箱图形库
import turtle

t = turtle.Turtle()

# #画一个n边形的通用函数
# def polygon(I,n):
#     angle = 360/n
#     for i in range(n):
#         t.forward(I)
#         t.right(angle)

# #画一个五角星
# def five_star(I):
#     for i in range(5):
#         t.forward(I)
#         t.right(144)

# #画一个圆,边长在36以上就是圆
# def circle():
#     for i in range(36):
#         t.forward(10)
#         t.right(15)

#将画笔定位封装成函数调用
def setpen(x,y):
    t.penup()#移动时不绘制图形,提起笔,用于另起一个地方绘制时用
    t.goto(x,y)
    t.pendown()#移动时绘制图形,缺省时也为绘制
    t.setheading(0)#设置朝向

#画一个正方形
# def square(x,y,I):
#     setpen(x,y)
#     for i in range(4):
#         t.forward(I)
#         t.right(90)

#画一排正方形
# def square_line(x,y,I,n,dis):
#     for i in range(n):
#         inner_x = x + (I + dis)*i
#         square(inner_x,y,I)

# def square_matrix(x,y,I,n,dis,m):
#     for i in range(m):
#         inner_y = y - (I+dis)*i
#         square_line(x,inner_y,I,n,dis)

#画五角星
# def five_star(I):
#     t.fillcolor('yello')
#     t.begin_fill()
#     for i in range(5):
#         t.forward(I)
#         t.right(144)
#     t.end_fill()



def circle(x,y,r,color):
    n = 36
    angle = 360/n#每次改变10度
    pi = 3.1415926
    c = 2 * pi * r#周长
    I = c / n
    start_x = x -I /2
    # start_x = x
    start_y = y + r
    setpen(start_x,start_y)
    t.pencolor(color)
    t.fillcolor(color)
    t.begin_fill()
    for i in range(n):
        t.forward(I)
        t.right(angle)
    t.end_fill()

def five_star(I):
    setpen(0,0)
    t.setheading(162)
    t.forward(150)
    t.setheading(0)
    t.fillcolor("WhiteSmoke")
    t.begin_fill()
    t.hideturtle()#隐藏箭头显示
    t.penup()
    for i in range(5):
        t.forward(I)
        t.right(144)
    t.end_fill()

def sheild():
    circle(0,0,300,"red")
    circle(0,0,250,"white")
    circle(0,0,200,"red")
    circle(0,0,150,"blue")
    five_star(284)


sheild()
turtle.done()

画一个哆啦A梦

#coding=utf-8
from turtle import *
#无轨迹跳跃
def my_goto(x,y):
    penup()
    goto(x,y)
    pendown()

def eyes():
    tracer(False)
    a = 2.5
    for i in range(120):
        if 0<=i<30 or 60<=i<90:
            a -= 0.05
            lt(3)
            fd(a)
        else:
            a += 0.05
            lt(3)
            fd(a)
    tracer(True)

def beard():
    my_goto(-37,135)
    seth(165)
    fd(60)

    my_goto(-37,125)
    seth(180)
    fd(60)

    my_goto(-37,115)
    seth(193)
    fd(60)

    my_goto(37,135)
    seth(15)
    fd(60)

    my_goto(37,125)
    seth(0)
    fd(60)

    my_goto(37,115)
    seth(-13)
    fd(60)

def mouth():
    my_goto(5,148)
    seth(270)
    fd(100)
    seth(0)
    circle(120,50)
    seth(230)
    circle(-120,100)

def scarf():
    fillcolor("#e70010")
    begin_fill()
    seth(0)
    fd(200)
    circle(-5,90)
    fd(10)
    circle(-5, 90)
    fd(207)
    circle(-5, 90)
    fd(10)
    circle(-5, 90)
    end_fill()

def nose():
    my_goto(-10,158)
    fillcolor("#e70010")
    begin_fill()
    circle(20)
    end_fill()

def black_eyes():
    seth(0)
    my_goto(-20,195)
    fillcolor("#000000")
    begin_fill()
    circle(13)
    end_fill()

    pensize(6)
    my_goto(20,205)
    seth(75)
    circle(-10,150)
    pensize(3)

    my_goto(-17,200)
    seth(0)
    fillcolor("#ffffff")
    begin_fill()
    circle(5)
    end_fill()
    my_goto(0,0)

def face():
    fd(183)
    fillcolor("#ffffff")
    begin_fill()
    lt(45)
    circle(120,100)

    seth(90)
    eyes()
    seth(180)
    penup()
    fd(60)
    pendown()
    seth(90)
    eyes()
    penup()
    seth(180)
    fd(64)
    pendown()
    seth(215)
    circle(120,100)
    end_fill()

def head():
    penup()
    circle(150,40)
    pendown()
    fillcolor("#00a0de")
    begin_fill()
    circle(150,280)
    end_fill()

def Doraemon():
    head()
    scarf()
    face()
    nose()
    mouth()
    beard()

    my_goto(0,0)
    seth(0)
    penup()
    circle(150,50)
    pendown()
    seth(30)
    fd(40)
    seth(70)
    circle(-30,270)

    fillcolor("#00a0de")
    begin_fill()

    seth(230)
    fd(80)
    seth(90)
    circle(1000,1)
    seth(-89)
    circle(-1000,10)

    seth(180)
    fd(70)
    seth(90)
    circle(30,180)
    seth(180)
    fd(70)

    seth(100)
    circle(-1000,9)

    seth(-86)
    circle(1000,2)
    seth(230)
    fd(40)

    circle(-30,230)
    seth(45)
    fd(81)
    seth(0)
    fd(203)
    circle(5,90)
    fd(10)
    circle(5,90)
    fd(7)
    seth(40)
    circle(150,10)
    seth(30)
    fd(40)
    end_fill()

    seth(70)
    fillcolor("#ffffff")
    begin_fill()
    circle(-30)
    end_fill()

    my_goto(103.74,-182.59)
    seth(0)
    fillcolor("#ffffff")
    begin_fill()
    fd(15)
    circle(-15,180)
    fd(90)
    circle(-15,180)
    fd(10)
    end_fill()

    my_goto(-96.26,-182.59)
    seth(180)
    fillcolor("#ffffff")
    begin_fill()
    fd(15)
    circle(15,180)
    fd(90)
    circle(15,180)
    fd(10)
    end_fill()

    my_goto(-133.97,-91.81)
    seth(50)
    fillcolor("#ffffff")
    begin_fill()
    circle(30)
    end_fill()

    my_goto(-103.2,15.09)
    seth(0)
    fd(38)
    seth(230)
    begin_fill()
    circle(90,260)
    end_fill()

    my_goto(5,-40)
    seth(0)
    fd(70)
    seth(-90)
    circle(-70,180)
    seth(0)
    fd(70)

    my_goto(-103.42,15.09)
    fd(90)
    seth(70)
    fillcolor("#ffd200")
    begin_fill()
    circle(-20)
    end_fill()
    seth(170)
    fillcolor("#ffd200")
    begin_fill()
    circle(-2,180)
    seth(10)
    circle(-100,22)
    circle(-2,180)
    seth(180-10)
    circle(100,22)
    end_fill()
    goto(-13.42,15.09)
    seth(250)
    circle(20,110)
    seth(90)
    fd(15)
    dot(10)
    my_goto(0,-150)

    black_eyes()

if __name__ == "__main__":
    screensize(800,600,"#f0f0f0")
    pensize(3)
    speed(9)
    Doraemon()
    my_goto(100,-300)
    write("送给亲爱的HX同学",font=("Bradley Hand iTC",30,"bold"))
    mainloop()

画一个小猪佩奇

from turtle import*

def nose(x,y):#鼻子
    penup()#提起笔
    goto(x,y)#定位
    pendown()#落笔,开始画
    setheading(-30)#将乌龟的方向设置为to_angle/为数字(0-东、90-北、180-西、270-南)
    begin_fill()#准备开始填充图形
    a=0.4
    for i in range(120):
        if 0<=i<30 or 60<=i<90:
            a=a+0.08
            left(3) #向左转3度
            forward(a) #向前走a的步长
        else:
            a=a-0.08
            left(3)
            forward(a)
    end_fill()#填充完成

    penup()
    setheading(90)
    forward(25)
    setheading(0)
    forward(10)
    pendown()
    pencolor(255,155,192)#画笔颜色
    setheading(10)
    begin_fill()
    circle(5)
    color(160,82,45)#返回或设置pencolor和fillcolor
    end_fill()

    penup()
    setheading(0)
    forward(20)
    pendown()
    pencolor(255,155,192)
    setheading(10)
    begin_fill()
    circle(5)
    color(160,82,45)
    end_fill()


def head(x,y):#头
    color((255,155,192),"pink")
    penup()
    goto(x,y)
    setheading(0)
    pendown()
    begin_fill()
    setheading(180)
    circle(300,-30)
    circle(100,-60)
    circle(80,-100)
    circle(150,-20)
    circle(60,-95)
    setheading(161)
    circle(-300,15)
    penup()
    goto(-100,100)
    pendown()
    setheading(-30)
    a=0.4
    for i in range(60):
        if 0<=i<30 or 60<=i<90:
            a=a+0.08
            lt(3) #向左转3度
            fd(a) #向前走a的步长
        else:
            a=a-0.08
            lt(3)
            fd(a)
    end_fill()


def ears(x,y): #耳朵
    color((255,155,192),"pink")
    penup()
    goto(x,y)
    pendown()
    begin_fill()
    setheading(100)
    circle(-50,50)
    circle(-10,120)
    circle(-50,54)
    end_fill()

    penup()
    setheading(90)
    forward(-12)
    setheading(0)
    forward(30)
    pendown()
    begin_fill()
    setheading(100)
    circle(-50,50)
    circle(-10,120)
    circle(-50,56)
    end_fill()


def eyes(x,y):#眼睛
    color((255,155,192),"white")
    penup()
    setheading(90)
    forward(-20)
    setheading(0)
    forward(-95)
    pendown()
    begin_fill()
    circle(15)
    end_fill()

    color("black")
    penup()
    setheading(90)
    forward(12)
    setheading(0)
    forward(-3)
    pendown()
    begin_fill()
    circle(3)
    end_fill()

    color((255,155,192),"white")
    penup()
    seth(90)
    forward(-25)
    seth(0)
    forward(40)
    pendown()
    begin_fill()
    circle(15)
    end_fill()

    color("black")
    penup()
    setheading(90)
    forward(12)
    setheading(0)
    forward(-3)
    pendown()
    begin_fill()
    circle(3)
    end_fill()


def cheek(x,y):#腮
    color((255,155,192))
    penup()
    goto(x,y)
    pendown()
    setheading(0)
    begin_fill()
    circle(30)
    end_fill()


def mouth(x,y): #嘴
    color(239,69,19)
    penup()
    goto(x,y)
    pendown()
    setheading(-80)
    circle(30,40)
    circle(40,80)

def body(x,y):#身体
    color("red",(255,99,71))
    penup()
    goto(x,y)
    pendown()
    begin_fill()
    setheading(-130)
    circle(100,10)
    circle(300,30)
    setheading(0)
    forward(230)
    setheading(90)
    circle(300,30)
    circle(100,3)
    color((255,155,192),(255,100,100))
    setheading(-135)
    circle(-80,63)
    circle(-150,24)
    end_fill()


def hands(x,y):#手
    color((255,155,192))
    penup()
    goto(x,y)
    pendown()
    setheading(-160)
    circle(300,15)
    penup()
    setheading(90)
    forward(15)
    setheading(0)
    forward(0)
    pendown()
    setheading(-10)
    circle(-20,90)

    penup()
    setheading(90)
    forward(30)
    setheading(0)
    forward(237)
    pendown()
    setheading(-20)
    circle(-300,15)
    penup()
    setheading(90)
    forward(20)
    setheading(0)
    forward(0)
    pendown()
    setheading(-170)
    circle(20,90)

def foot(x,y):#脚
    pensize(10)
    color((240,128,128))
    penup()
    goto(x,y)
    pendown()
    setheading(-90)
    forward(40)
    setheading(-180)
    color("black")
    pensize(15)
    fd(20)

    pensize(10)
    color((240,128,128))
    penup()
    setheading(90)
    forward(40)
    setheading(0)
    forward(90)
    pendown()
    setheading(-90)
    forward(40)
    setheading(-180)
    color("black")
    pensize(15)
    fd(20)

def tail(x,y):#尾巴
    pensize(4)
    color((255,155,192))
    penup()
    goto(x,y)
    pendown()
    seth(0)
    circle(70,20)
    circle(10,330)
    circle(70,30)

def setting():          #参数设置
    pensize(4)
    hideturtle()        #使乌龟无形(隐藏)
    colormode(255)      #将其设置为1.0或255.随后 颜色三元组的r,g,b值必须在0 .. cmode范围内
    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()

if __name__ == '__main__':
	main()


猜你喜欢

转载自blog.csdn.net/hhhhhyyyyy8/article/details/80528886