ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python turtle虎年来拜年了

2022-01-30 20:02:25  阅读:181  来源: 互联网

标签:turtle rotate set python start right fill 虎年 left


1.画个虎

# coding=utf-8
from turtle import *
import time

COLOR = '#B2814D'

def set_start(x, y, w, c=COLOR):
    penup()
    setx(x)
    sety(y)
    setheading(towards(0, 0))
    width(w)
    pencolor(c)
    pendown()
    speed(0)


def left_rotate(time, angle, length):
    for i in range(time):
        left(angle)
        forward(length)


def right_rotate(time, angle, length):
    for i in range(time):
        right(angle)
        forward(length)


def draw_circle(radius, color, color2=''):
    if color2 == '':
        color2 = color
    penup()
    setheading(towards(0, 0))
    right(90)
    pencolor(color)
    pendown()
    begin_fill()
    circle(radius)
    fillcolor(color2)
    end_fill()


def fill_color(color):
    def decorator_all(func):
        def wrapper(*args, **kwargs):
            begin_fill()
            func(*args, **kwargs)
            fillcolor(color)
            end_fill()
        return wrapper
    return decorator_all


def fill_color_patch(x, y, c='#fffffb'):
    set_start(x, y, 1, c=c)
    forward(1)


def head_outline():
    set_start(0, -40, 2.5)
    right(90)
    left_rotate(5, 3, 14)
    left_rotate(5, 8, 8)
    left_rotate(10, 5, 6.5)
    left_rotate(5, 5.5, 10)
    left_rotate(25, 4, 10)
    left_rotate(6, 5.5, 5)
    left_rotate(7, 3, 7)
    left_rotate(5, 10, 8)
    left_rotate(5, 3, 14)


@fill_color('#fdb933')
def draw_head():
    head_outline()
    pencolor('#CDCDCD')
    goto(0, -40)


@fill_color('#fffffb')
def draw_face():
    set_start(0, -40, 2.5)
    right(90)
    left_rotate(5, 3, 14)
    left_rotate(1, 80, 2.5)
    pencolor('#fffffb')
    left_rotate(12, 5, 6.5)
    left_rotate(5, 6, 15)
    left_rotate(5, 5, 10)
    left_rotate(5, 12, 10)
    backward(0.5)
    left(65)
    pencolor(COLOR)
    backward(3)
    left_rotate(5, 3, 14)
    forward(5)


def draw_moustache():
    fill_color_patch(-41, -31)
    begin_fill()
    set_start(-41, -31, 2.5)
    right(180)
    left_rotate(4, 20, 4)
    left_rotate(1, 90, 8)
    right(150)
    left_rotate(4, 25, 3)
    forward(6)
    left_rotate(1, 110, 5.5)
    right(165)
    left_rotate(4, 15, 3.2)
    left(150)
    right_rotate(3, 30, 2.2)
    right_rotate(1, 105, 5)
    left(130)
    right_rotate(6, 5, 1.8)
    right_rotate(1, 130, 2)
    left(60)
    left_rotate(2, 30, 1)
    left_rotate(4, 28, 4)
    fillcolor('#fffffb')
    end_fill()
    set_start(-45, -28, 2.5)
    right(70)
    left_rotate(5, 2.5, 4)
    left_rotate(4, 9, 3)
    left_rotate(5, 3, 4.5)


def draw_mouth():
    set_start(-17, 22, 2.5)
    right_rotate(1, 45, 14)
    left_rotate(1, 85, 35)
    left_rotate(1, 70, 7)
    set_start(-17, 22, 2.5)
    right_rotate(1, 45, 14)
    right_rotate(1, 78, 36)
    right_rotate(1, 65, 6)
    set_start(-17, 22, 2.5)
    right_rotate(1, 45, 14)
    left_rotate(1, 85, 30)
    right_rotate(1, 108, 12)
    right_rotate(1, 140, 5)
    set_start(-17, 22, 2.5)
    right_rotate(1, 45, 14)
    right_rotate(1, 75, 28)
    left_rotate(1, 85, 10)
    left_rotate(1, 130, 8)
    set_start(3, 0, 2.5)
    left(90)
    right_rotate(5, 5, 4.8)
    right_rotate(4, 18, 1.8)
    left_rotate(1, 3, 27)
    right_rotate(4, 18, 1)
    right_rotate(1, 15, 22)
    right(88)
    right_rotate(9, 1, 4.5)
    begin_fill()
    set_start(3, 0, 2.5)
    left(90)
    right_rotate(4, 5, 4.8)
    right_rotate(1, 5, 2)
    right_rotate(1, 67, 37)
    right_rotate(1, 86, 18)
    fillcolor('#f15a22')
    end_fill()
    begin_fill()
    set_start(3, 0, 2.5)
    pencolor('#aa2116')
    left(90)
    right_rotate(2, 5, 6)
    right(120)
    left_rotate(10, 6, 2)
    right(55)
    left_rotate(11, 5.5, 1.8)
    right_rotate(1, 110, 10)
    right(100)
    right_rotate(9, 1, 4.5)
    fillcolor('#aa2116')
    end_fill()
    set_start(3, 0, 2.5)
    left(90)
    right_rotate(5, 5, 4.8)
    right_rotate(4, 18, 1.8)
    left_rotate(1, 3, 27)
    right_rotate(4, 18, 1)
    right_rotate(1, 15, 22)
    right(88)
    right_rotate(9, 1, 4.5)
    set_start(21, 10, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(10, 16, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(21, 19, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(-57, 16, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(-51, 24, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(-64, 24, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')


def draw_nose():
    set_start(6, 37, 1)
    pencolor('#e0861a')
    right(150)
    begin_fill()
    left_rotate(6, 3, 4)
    left_rotate(6, 15, 3)
    left_rotate(6, 3, 4)
    fillcolor('#e0861a')
    end_fill()
    set_start(6, 37, 1.5)
    right(120)
    begin_fill()
    left_rotate(5, 4, 4)
    left_rotate(3, 10, 3)
    left_rotate(5, 4, 4)
    left_rotate(7, 15, 0.8)
    left_rotate(5, 4, 4)
    left_rotate(5, 8, 2)
    left_rotate(5, 4, 4)
    left_rotate(7, 15, 0.8)
    fillcolor('#b4532a')
    end_fill()
    set_start(-16, 36, 1)
    pencolor('#d1923f')
    right(75)
    begin_fill()
    right_rotate(4, 15, 2)
    right_rotate(5, 26, 1)
    right_rotate(4, 15, 2)
    right_rotate(5, 26, 1)
    fillcolor('#d1923f')
    end_fill()
    set_start(-25, 25, 1)
    pencolor('#130c0e')
    left(110)
    begin_fill()
    left_rotate(6, 15, 1.5)
    left_rotate(5, 15, 1)
    fillcolor('#130c0e')
    end_fill()
    set_start(-10, 24, 1)
    pencolor('#130c0e')
    left(175)
    begin_fill()
    right_rotate(6, 15, 1.2)
    right_rotate(5, 15, 1)
    fillcolor('#130c0e')
    end_fill()


def draw_eye():
    set_start(-50, 34, 1, c='#130c0e')
    left(115)
    begin_fill()
    left_rotate(8, 6.5, 7)
    left_rotate(5, 15, 7)
    left_rotate(5, 10, 5.5)
    left_rotate(5, 15, 6)
    left_rotate(5, 5, 9.5)
    left_rotate(4, 30, 2)
    fillcolor('#130c0e')
    end_fill()
    set_start(-57, 40, 1, c='#fffffb')
    left(112)
    begin_fill()
    left_rotate(8, 6.5, 5)
    left_rotate(5, 15, 6)
    left_rotate(5, 10, 4.5)
    left_rotate(5, 15, 5)
    left_rotate(5, 6.5, 7)
    left_rotate(4, 15, 2)
    fillcolor('#fffffb')
    end_fill()
    set_start(-90, 62, 1, c='#563624')
    draw_circle(15, '#563624')
    set_start(-84, 59, 1, c='#130c0e')
    draw_circle(9, '#130c0e')
    set_start(-90, 63, 1, c='#fffffb')
    draw_circle(3.5, '#fffffb')
    set_start(16, 25, 1, c='#130c0e')
    right(150)
    begin_fill()
    right_rotate(8, 6.5, 7)
    right_rotate(5, 15, 7)
    right_rotate(5, 10, 5.5)
    right_rotate(5, 15, 6)
    right_rotate(5, 5, 9.5)
    right_rotate(4, 30, 2)
    fillcolor('#130c0e')
    end_fill()
    set_start(24, 28, 1, c='#fffffb')
    right(135)
    begin_fill()
    right_rotate(8, 7, 5)
    right_rotate(5, 15, 5.5)
    right_rotate(5, 10, 4.5)
    right_rotate(5, 15, 4.5)
    right_rotate(5, 6.5, 6.5)
    right_rotate(4, 13, 2)
    fillcolor('#fffffb')
    end_fill()
    set_start(57, 48, 1, c='#563624')
    draw_circle(15, '#563624')
    set_start(53, 44, 1, c='#130c0e')
    draw_circle(9, '#130c0e')
    set_start(38, 47, 1, c='#fffffb')
    draw_circle(3.5, '#fffffb')


def draw_brow():
    set_start(12, 88, 1, c='#130c0e')
    right(82)
    begin_fill()
    left_rotate(3, 3, 5)
    right_rotate(5, 4, 6)
    right_rotate(7, 24, 2.3)
    right_rotate(3, 5, 4.5)
    left_rotate(1, 90, 8)
    left(95)
    left_rotate(3, 8, 5)
    right_rotate(3, 25, 1.2)
    right_rotate(3, 11, 1.5)
    right_rotate(3, 25, 1.2)
    right_rotate(3, 3, 4.5)
    left_rotate(1, 85, 7)
    left_rotate(1, 90, 15)
    right_rotate(5, 30, 2.2)
    right_rotate(3, 9, 6)
    right_rotate(6, 3, 5)
    right_rotate(8, 18, 1.3)
    right_rotate(3, 10, 5.3)
    left_rotate(1, 90, 8)
    left(112)
    right_rotate(3, 3, 4.5)
    right_rotate(3, 25, 1)
    right_rotate(3, 10, 1.5)
    right_rotate(3, 28, 1)
    left_rotate(3, 5, 3)
    left_rotate(3, 25, 1)
    left_rotate(3, 5, 1.8)
    left_rotate(1, 90, 17)
    right_rotate(3, 35, 0.8)
    right_rotate(3, 10, 3)
    fillcolor('#130c0e')
    end_fill()
    set_start(88, -16, 1, c='#130c0e')
    begin_fill()
    right_rotate(5, 15, 3)
    right_rotate(4, 5.5, 3)
    right_rotate(3, 28, 1)
    right_rotate(5, 6, 4)
    fillcolor('#130c0e')
    end_fill()
    set_start(106, 9, 1, c='#130c0e')
    right(15)
    begin_fill()
    right_rotate(5, 5, 5.5)
    right_rotate(5, 29, 3)
    right_rotate(5, 5, 4.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(110, 36, 1, c='#130c0e')
    left(20)
    begin_fill()
    right_rotate(3, 10, 2)
    right_rotate(3, 10, 6)
    right_rotate(5, 29, 2)
    forward(20)
    fillcolor('#130c0e')
    end_fill()
    set_start(75, 76, 1, c='#130c0e')
    right(105)
    begin_fill()
    left_rotate(5, 10, 4)
    right_rotate(6, 28, 2)
    right_rotate(5, 10, 5)
    right_rotate(6, 25, 2)
    fillcolor('#130c0e')
    end_fill()
    set_start(-75, 100, 1, c='#130c0e')
    right(108)
    begin_fill()
    right_rotate(3, 3, 8)
    right_rotate(4, 35, 2)
    right_rotate(8, 9, 3.2)
    fillcolor('#130c0e')
    end_fill()
    set_start(-145, 58, 1, c='#130c0e')
    right(30)
    begin_fill()
    left_rotate(5, 15, 5)
    left_rotate(3, 18, 3)
    left(92)
    right_rotate(4, 5, 6)
    right_rotate(1, 5, 4)
    fillcolor('#130c0e')
    end_fill()
    set_start(-148, 46, 1, c='#130c0e')
    left(40)
    begin_fill()
    right_rotate(5, 10, 6.5)
    right_rotate(4, 32, 2)
    right_rotate(4, 10, 6.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(-138, 7, 1, c='#130c0e')
    left(10)
    begin_fill()
    left_rotate(5, 8, 4)
    left_rotate(6, 20, 1.5)
    left_rotate(4, 8, 4.5)
    fillcolor('#130c0e')
    end_fill()
    head_outline()


def draw_ear():
    set_start(101, 74, 2.5)
    left(150)
    begin_fill()
    left_rotate(5, 6, 3)
    left_rotate(5, 12, 5)
    left_rotate(3, 13, 12)
    left_rotate(5, 12, 7)
    left_rotate(4, 16, 5)
    fillcolor('#fdb933')
    end_fill()
    set_start(94, 89, 1, c='#f3715c')
    right(168)
    begin_fill()
    left_rotate(5, 17, 6)
    left_rotate(4, 20, 5)
    goto(94, 89)
    fillcolor('#f3715c')
    end_fill()
    set_start(-125, 98, 2.5)
    right(165)
    begin_fill()
    right_rotate(5, 6, 3)
    right_rotate(5, 12, 5)
    right_rotate(3, 13, 12)
    right_rotate(5, 12, 7)
    right_rotate(4, 16, 4.5)
    fillcolor('#fdb933')
    end_fill()
    set_start(-115, 110, 1, c='#f3715c')
    left(160)
    begin_fill()
    right_rotate(5, 17, 6)
    right_rotate(4, 20, 5.5)
    goto(-115, 110)
    fillcolor('#f3715c')
    end_fill()
    head_outline()


def draw_cap():
    set_start(55, 123, 2.5)
    right(150)
    left_rotate(13, 11, 12)
    set_start(18, 170, 2.5)
    right(180)
    begin_fill()
    left_rotate(10, 16, 4)
    fillcolor('#130c0e')
    end_fill()
    set_start(55, 123, 2.5)
    right(150)
    begin_fill()
    left_rotate(13, 11, 12)
    fillcolor('#FF0000')
    end_fill()
    set_start(55, 123, 2.5)
    right(113)
    begin_fill()
    left_rotate(15, 5, 8.6)
    fillcolor('#228B22')
    end_fill()
    set_start(30, 142, 2.5)
    right(170)
    left_rotate(18, 8.9, 5)
    set_start(-2, 150, 2.5)
    left(178)
    right_rotate(4, 5, 6)
    set_start(55, 123, 2.5)
    begin_fill()
    goto(50.13, 124.56)
    setheading(148.5)
    left_rotate(12, 4, 10)
    fillcolor('#fdb933')
    end_fill()


def draw_shadow():
    fill_color_patch(75, -155)
    _draw_shadow()


@fill_color('#fab27b')
def _draw_shadow():
    set_start(75, -155, 1, c='#fab27b')
    left_rotate(5, 8, 5)
    left_rotate(10, 4, 10)
    left_rotate(5, 6, 9)
    left_rotate(4, 30, 4.5)
    left_rotate(5, 3.5, 16)
    left_rotate(3, 3.5, 18)
    left_rotate(3, 8, 5)
    left_rotate(4, 20, 1.5)
    goto(75, -155)


def draw_body():
    fill_color_patch(0, -40)
    set_start(0, -40, 2.5)
    right(90)
    begin_fill()
    left_rotate(2, 3, 14)
    width(2.4)
    goto(53, -74)
    pencolor('#87481f')
    left(20)
    right_rotate(5, 16, 1.3)
    right_rotate(4, 8, 8)
    right_rotate(1, 15, 2)
    right_rotate(1, 30, 7)
    right_rotate(3, 28, 2)
    right_rotate(1, 5, 4)
    right_rotate(1, 90, 6)
    right_rotate(1, 180, 10)
    right_rotate(3, 5, 8)
    right_rotate(3, 10, 6.5)
    right_rotate(2, 15, 2)
    right_rotate(4, 7, 4.5)
    left_rotate(2, 18, 1)
    left_rotate(4, 12, 5)
    left_rotate(4, 15, 3)
    left_rotate(4, 7, 4)
    right_rotate(1, 82, 2)
    right_rotate(4, 8, 7)
    right_rotate(2, 12, 2)
    right_rotate(4, 28, 1.5)
    right_rotate(1, 10, 6)
    right_rotate(1, 60, 4.5)
    right(170)
    right_rotate(5, 10, 5)
    right_rotate(10, 2.5, 5)
    goto(-71.81, -32.68)
    setheading(345.5)
    width(2.5)
    pencolor(COLOR)
    left_rotate(2, 3, 14)
    fillcolor('#fdb933')
    end_fill()
    set_start(0, -42, 1)
    right(90)
    pencolor('#fffffb')
    begin_fill()
    right_rotate(5, 12, 5)
    right_rotate(3, 13, 15)
    right_rotate(3, 25, 12)
    backward(1)
    right(23)
    left_rotate(3, 15, 6)
    right(5)
    right_rotate(3, 20, 11)
    right_rotate(3, 15, 12)
    right_rotate(3, 15, 10)
    right_rotate(1, 15, 20)
    fillcolor('#fffffb')
    end_fill()
    set_start(37, -125, 1)
    pencolor('#130c0e')
    begin_fill()
    right_rotate(1, 5, 8)
    right_rotate(4, 30, 1.5)
    right_rotate(1, 20, 6)
    fillcolor('#130c0e')
    end_fill()
    set_start(29, -130, 1)
    pencolor('#130c0e')
    begin_fill()
    left(20)
    right_rotate(2, 5, 5)
    left_rotate(4, 30, 1.5)
    left_rotate(2, 10, 4)
    right_rotate(3, 20, 2)
    left(155)
    left_rotate(3, 8, 5)
    fillcolor('#130c0e')
    end_fill()
    set_start(-62, -139, 1)
    pencolor('#130c0e')
    begin_fill()
    right(65)
    left_rotate(2, 10, 4)
    left_rotate(3, 25, 1.5)
    left_rotate(1, 10, 2)
    left_rotate(3, 28, 1.5)
    right_rotate(3, 10, 3.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(-71, -118, 1)
    pencolor('#130c0e')
    begin_fill()
    right(50)
    left_rotate(4, 10, 2.5)
    left_rotate(5, 28, 1.5)
    right_rotate(3, 10, 2.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(-75, -94, 1)
    pencolor('#130c0e')
    begin_fill()
    right(30)
    left_rotate(4, 10, 2.5)
    left_rotate(5, 28, 1.5)
    right_rotate(3, 10, 2.5)
    fillcolor('#130c0e')
    end_fill()


def draw_left_hand():
    set_start(0, -40, 2.5)
    right(90)
    left_rotate(4, 3, 14)
    left_rotate(1, 3, 8)
    right_rotate(1, 33, 3)
    begin_fill()
    left_rotate(1, 0, 4)
    left_rotate(3, 7, 7)
    left_rotate(4, 18, 3.8)
    set_start(103, -26, 2.5)
    right_rotate(3, 20, 4.5)
    right_rotate(3, 20, 2.5)
    right_rotate(2, 20, 2)
    right_rotate(2, 18, 5)
    right_rotate(5, 30, 1.5)
    right_rotate(1, 5, 8)
    right_rotate(1, 180, 2)
    right_rotate(2, 40, 3.5)
    set_start(106, -8, 2.5)
    right(90)
    right_rotate(2, 10, 4)
    right_rotate(4, 24, 3)
    right_rotate(2, 10, 4)
    right_rotate(2, 20, 5)
    right_rotate(5, 26, 1.2)
    right_rotate(2, 10, 4)
    right_rotate(1, 190, 4)
    right_rotate(1, 90, 3)
    set_start(128, -12, 2.5)
    left(155)
    right_rotate(3, 20, 5.5)
    right_rotate(2, 25, 1.5)
    right_rotate(1, 25, 4)
    right_rotate(3, 25, 2)
    right_rotate(2, 10, 3)
    set_start(124, -30, 2.5)
    left(150)
    right_rotate(8, 25, 2)
    right_rotate(1, 15, 3)
    right_rotate(2, 28, 2)
    set_start(115, -35, 2.5)
    left(100)
    right_rotate(5, 26, 1.8)
    right_rotate(1, 25, 5)
    set_start(103, -31, 2.5)
    left(135)
    right_rotate(5, 10, 5)
    right_rotate(4, 15, 6)
    left_rotate(1, 100, 7)
    right(120)
    right_rotate(3, 12, 2.5)
    left(170)
    right_rotate(3, 15, 3)
    right(110)
    right_rotate(3, 12, 3)
    left(140)
    right_rotate(3, 12, 3)
    right(120)
    right_rotate(3, 10, 3.5)
    left_rotate(1, 125, 10)
    right_rotate(3, 23, 3)
    right_rotate(3, 9, 9.5)
    fillcolor('#fdb933')
    end_fill()
    set_start(115, -35, 2.5)
    left(100)
    begin_fill()
    right_rotate(5, 26, 1.8)
    right_rotate(1, 25, 5)
    pencolor('#fffffb')
    width(1)
    left(90)
    right_rotate(4, 40, 2)
    left(90)
    right_rotate(4, 40, 1)
    left_rotate(1, 135, 5)
    right(80)
    right_rotate(3, 26, 4.5)
    right(130)
    left_rotate(3, 28, 3)
    fillcolor('#fffffb')
    end_fill()
    set_start(61, -33, 1)
    left(118)
    pencolor('#130c0e')
    begin_fill()
    right_rotate(3, 5, 3.5)
    right_rotate(4, 32, 1.5)
    right_rotate(3, 12, 2.7)
    fillcolor('#130c0e')
    end_fill()
    set_start(78, -36, 1)
    left(110)
    pencolor('#130c0e')
    begin_fill()
    left_rotate(3, 5, 3.5)
    right(50)
    right_rotate(4, 20, 1)
    right_rotate(5, 10, 3)
    fillcolor('#130c0e')
    end_fill()
    set_start(94, -35, 1)
    left(125)
    pencolor('#130c0e')
    begin_fill()
    left_rotate(3, 5, 2)
    right(50)
    right_rotate(4, 25, 2)
    right_rotate(3, 10, 2.2)
    fillcolor('#130c0e')
    end_fill()


def draw_right_hand():
    fill_color_patch(-44.24, -37.54)
    set_start(-44.24, -37.54, 2.5)
    setheading(351.5)
    begin_fill()
    right(177)
    right_rotate(4, 3, 14)
    right(3)
    goto(-106, -22)
    set_start(-106, -22, 2.5)
    right(175)
    right_rotate(3, 5, 5.5)
    right_rotate(3, 22, 4)
    right(80)
    left_rotate(2, 25, 4)
    left_rotate(4, 35, 5.5)
    left_rotate(3, 30, 1.5)
    left_rotate(3, 20, 2)
    left_rotate(1, 10, 2.5)
    right(120)
    left_rotate(3, 20, 2.5)
    set_start(-143, -2, 2.5)
    left(120)
    left_rotate(4, 25, 3.5)
    left_rotate(1, 35, 3)
    left_rotate(2, 15, 3)
    left_rotate(5, 22, 3.5)
    left_rotate(2, 20, 2.5)
    set_start(-155, -7, 2.5)
    left(170)
    left_rotate(2, 35, 3.5)
    left_rotate(2, 12, 4.5)
    left_rotate(3, 28, 4)
    left_rotate(3, 10, 3)
    left_rotate(3, 28, 3.5)
    set_start(-158, -27, 2.5)
    right(130)
    left_rotate(3, 30, 2.5)
    left_rotate(4, 13, 4)
    left_rotate(4, 35, 2.5)
    set_start(-135, -25, 2.5)
    right(95)
    left_rotate(3, 12, 9)
    left_rotate(4, 12, 4)
    right_rotate(1, 90, 8)
    left(120)
    left_rotate(3, 12, 3)
    right(160)
    left_rotate(3, 10, 4)
    left(120)
    left_rotate(3, 12, 3.5)
    right(145)
    left_rotate(3, 10, 3.5)
    left(125)
    left_rotate(3, 10, 3.5)
    right_rotate(1, 135, 10)
    fillcolor('#fdb933')
    end_fill()
    fill_color_patch(-107, -23)
    begin_fill()
    set_start(-107, -23, 1)
    pencolor('#130c0e')
    right(90)
    right_rotate(3, 3, 3.5)
    left_rotate(5, 25, 1)
    left_rotate(3, 15, 3.2)
    fillcolor('#130c0e')
    end_fill()
    fill_color_patch(-122, -25)
    begin_fill()
    set_start(-122, -25, 1)
    pencolor('#130c0e')
    right(120)
    left_rotate(3, 5, 2)
    left_rotate(4, 30, 1.4)
    left_rotate(3, 15, 3)
    fillcolor('#130c0e')
    end_fill()


def draw_clothes():
    set_start(0, -40, 2.5)
    right(90)
    begin_fill()
    left_rotate(3, 3, 14)
    goto(47.57, -36.43)
    setheading(94.25)
    left(171)
    left_rotate(3, 9, 9.5)
    left_rotate(1, 9, 3)
    left_rotate(2, 23, 2.5)
    right(150)
    left_rotate(3, 10, 5)
    right_rotate(3, 10, 10)
    right_rotate(1, 20, 4)
    right_rotate(2, 10, 4)
    right(90)
    left_rotate(5, 5, 10)
    fillcolor('#FF0000')
    end_fill()
    set_start(0, -40, 2.5)
    right(90)
    begin_fill()
    left_rotate(1, 3, 14)
    left_rotate(1, 3, 13)
    right(88)
    right_rotate(5, 5, 10)
    goto(21.85, -91.11)
    setheading(197.25)
    right_rotate(1, 20, 4)
    right_rotate(2, 10, 4)
    right(90)
    left_rotate(5, 5, 10)
    fillcolor('#228B22')
    end_fill()
    set_start(-44.24, -37.54, 2.5)
    setheading(351.5)
    begin_fill()
    right(177)
    right_rotate(2, 3, 14)
    right_rotate(1, 3, 7)
    left(65)
    left_rotate(4, 7, 10)
    left_rotate(3, 6, 10)
    left_rotate(1, 0, 2)
    left(128)
    right_rotate(6, 7, 6.1)
    right_rotate(2, 7, 6.1)
    left(125)
    right_rotate(5, 4, 11)
    fillcolor('#FF0000')
    end_fill()
    set_start(-44.24, -37.54, 2.5)
    setheading(351.5)
    begin_fill()
    right(177)
    right_rotate(1, 3, 14)
    right_rotate(1, 3, 8)
    left(92)
    left_rotate(4, 8, 7)
    right(10)
    right_rotate(4, 3, 6)
    goto(-59.29, -87.30)
    setheading(2.5)
    right_rotate(2, 7, 6.1)
    left(125)
    right_rotate(5, 4, 11)
    fillcolor('#228B22')
    end_fill()


def draw_tail():
    set_start(53, -74, 2.4, c='#87481f')
    begin_fill()
    setheading(26)
    right_rotate(5, 16, 1.3)
    right_rotate(1, 8, 8)
    right_rotate(1, 8, 4)
    left(60)
    right_rotate(1, 3, 3)
    pencolor(COLOR)
    forward(5)
    right_rotate(4, 3, 8)
    left_rotate(3, 3, 7)
    left_rotate(2, 5, 3)
    left_rotate(5, 6, 6)
    left_rotate(3, 8, 7)
    left_rotate(5, 12, 6)
    left_rotate(5, 10, 6)
    left_rotate(5, 15, 2)
    left_rotate(2, 20, 2)
    left_rotate(3, 10, 3)
    right_rotate(2, 13, 5)
    right_rotate(2, 20, 6)
    right_rotate(2, 12, 6)
    right_rotate(5, 7.5, 5)
    right_rotate(6, 3, 4)
    left_rotate(4, 2, 8.5)
    fillcolor('#fdb933')
    end_fill()
    set_start(53, -74, 2.4, c='#87481f')
    begin_fill()
    setheading(26)
    right_rotate(5, 16, 1.3)
    right_rotate(1, 8, 8)
    right_rotate(1, 8, 3)
    left(60)
    right_rotate(1, 3, 2)
    pencolor('#130c0e')
    left_rotate(3, 25, 2)
    left_rotate(3, 5, 1.8)
    left_rotate(1, 78, 8.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(83, -81, 1, c='#130c0e')
    begin_fill()
    left(140)
    right_rotate(5, 8, 2)
    left_rotate(1, 105, 5)
    right_rotate(2, 3, 5.5)
    left(50)
    left_rotate(3, 15, 4.1)
    fillcolor('#130c0e')
    end_fill()
    set_start(109, -89, 1, c='#130c0e')
    begin_fill()
    left(150)
    right_rotate(3, 5, 2)
    right_rotate(4, 15, 2)
    left_rotate(1, 125, 6)
    left_rotate(2, 3, 7)
    left(85)
    left_rotate(3, 15, 6.05)
    left(68)
    right_rotate(3, 5, 5)
    fillcolor('#130c0e')
    end_fill()
    set_start(132, -88, 1, c='#130c0e')
    begin_fill()
    left(180)
    right_rotate(5, 10, 4.1)
    left_rotate(1, 100, 6)
    left_rotate(2, 5, 7)
    left(75)
    left_rotate(5, 10, 5)
    left(75)
    right_rotate(3, 8, 4.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(150, -71, 1, c='#130c0e')
    begin_fill()
    right(140)
    right_rotate(5, 15, 5.8)
    left_rotate(1, 130, 6)
    left_rotate(2, 10, 5)
    left(30)
    left_rotate(5, 15, 5.6)
    left(81)
    right_rotate(3, 8, 3)
    fillcolor('#130c0e')
    end_fill()
    set_start(147, -51, 1, c='#130c0e')
    begin_fill()
    right(125)
    right_rotate(5, 10, 4)
    left(145)
    left_rotate(2, 10, 6.5)
    left_rotate(6, 14, 2)
    left_rotate(4, 22, 2)
    fillcolor('#130c0e')
    end_fill()


def draw_drum():
    set_start(-136, -12, 2, c='#87481f')
    begin_fill()
    right_rotate(1, 78, 17)
    right_rotate(5, 30, 1.2)
    right_rotate(1, 30, 17)
    fillcolor('#FF0000')
    end_fill()
    set_start(-140, -2, 2, c='#87481f')
    begin_fill()
    left_rotate(1, 108, 10)
    right_rotate(1, 90, 4)
    left_rotate(5, 16, 7)
    left_rotate(5, 19, 6.5)
    forward(4)
    left_rotate(5, 18, 7.5)
    left_rotate(5, 18, 6.1)
    left_rotate(1, 180, 3)
    left_rotate(1, 95, 10)
    fillcolor('#FF0000')
    end_fill()
    set_start(-156.34, 48.19, 1, c='#87481f')
    setheading(199)
    left(12)
    left_rotate(10, 14.5, 5.8)
    set_start(-140, 12, 1, c='#87481f')
    setheading(20)
    begin_fill()
    left_rotate(5, 14, 5.2)
    left_rotate(3, 15, 4.5)
    left_rotate(5, 18, 5)
    left_rotate(5, 16, 5.5)
    left_rotate(3, 18, 5)
    fillcolor('#fffffb')
    end_fill()
    set_start(-143, 14, 2.5, c='#FF0000')
    left_rotate(1, 117, 17)
    left_rotate(1, 90, 9)
    left(90)
    left_rotate(3, 5, 3.5)
    set_start(-146.8, 14, 2.5, c='#FF0000')
    left_rotate(1, 120, 14)
    set_start(-150, 34, 2.5, c='#FF0000')
    left_rotate(1, 120, 8.5)
    left(100)
    left_rotate(3, 17, 4)
    set_start(-140, 16, 2.5, c='#FF0000')
    left_rotate(1, 115, 14)
    right_rotate(1, 90, 13)
    right(90)
    right_rotate(4, 16, 4.5)
    set_start(-136, 18, 2.4, c='#FF0000')
    left_rotate(1, 112, 12)
    set_start(-142, 24, 2.5, c='#FF0000')
    left_rotate(1, 35, 10)
    set_start(-145, 32, 2.5, c='#FF0000')
    left_rotate(1, 115, 6)
    right_rotate(1, 85, 10)
    right(40)
    right_rotate(3, 18, 2)
    right_rotate(1, 95, 10)
    set_start(-149, 44, 2.5, c='#FF0000')
    left(60)
    right_rotate(3, 22, 3)
    set_start(-166, 20, 2.4)
    right(100)
    right_rotate(4, 32, 3)
    right_rotate(2, 12, 3.5)
    left_rotate(2, 10, 4)
    left_rotate(4, 25, 2.5)
    set_start(-196, 35, 2.4)
    draw_circle(3.5, COLOR, '#FF0000')
    set_start(-127, 38, 2.4)
    left(60)
    right_rotate(4, 32, 3)
    right_rotate(2, 12, 3.5)
    left_rotate(6, 28, 2)
    left_rotate(3, 15, 2)
    set_start(-115, 33, 2.4)
    draw_circle(3.5, COLOR, '#FF0000')


if __name__ == '__main__':
    title('PythonDrawTiger(公众号:Python碎片)')
    setup(420, 400, 150, 150)
    screensize(400, 380, '#FFE4E1')
    time.sleep(3)
    draw_head()
    draw_face()
    draw_eye()
    draw_nose()
    draw_mouth()
    draw_ear()
    draw_cap()
    draw_brow()
    draw_shadow()
    draw_body()
    draw_moustache()
    draw_left_hand()
    draw_right_hand()
    draw_clothes()
    draw_tail()
    draw_drum()
    set_start(1000, 1000, 2.5)
    done()

返回:

2.春联 


#!/usr/bin/env python3
# -*- coding: utf-8 -*-


from turtle import *
def drawChunLianBg(startX=0, startY=0, lenX=100, lenY=100):
    # 设置边框色和背景填充色
    color('Yellow', 'OrangeRed')
    # 抬笔,定位起点
    pu()
    goto(startX, startY)
    # 落笔,绘制春联矩形框,并填充颜色
    pd()
    begin_fill()
    for i in range(2):
        fd(lenX)
        rt(90)
        fd(lenY)
        rt(90)
    end_fill()
    # 结束后抬笔
    pu()

def writeWord(target_word, startx, starty):
    # 基于坐标,打印单个汉字
    color("black", "black")
    # 抬笔定位
    pu()
    goto(startx,starty)
    pd()
    # 基于字体,打印汉字
    write(target_word, move=False,align='left',font=('汉仪程行简',24, 'normal'))
    # write(target_word, move=False,align='left',font=('汉仪尚巍手书W',24, 'normal'))
    pu()

def writeWords(target_words, startx, starty,lineNum=1):
    # 打印多个汉字,lineNum控制每行的汉字数,默认为1
    # 向右、向下的偏移量
    right_shift = 0
    down_shift = 0
    # 遍历打印汉字
    for word in target_words:
        writeWord(word, startx+right_shift*45, starty-down_shift*45)
        right_shift += 1
        # 判断是否要换行
        if right_shift % lineNum == 0:
            down_shift += 1
            right_shift = 0
    pu()

if __name__ == '__main__':
    # title('PythonDrawTiger')
    setup(800,650)
    screensize(800,650, 'black')
    # screensize(800,650, '#FFE4E1')
    drawChunLianBg(-260, 215, 60, 500)
    writeWords(target_words="晚睡不起 吃完饭接着睡", startx=-245, starty=175)
    drawChunLianBg(190, 215, 60, 500)
    writeWords(target_words="一日多餐 顿顿无肉不欢", startx=205, starty=175)
    drawChunLianBg(-110, 300, 210, 60)
    writeWords(target_words="虎虎生威", startx=-90, starty=250,lineNum=4)
    hideturtle()

返回:

3.合二为一

# coding=utf-8
from turtle import *
import time

COLOR = '#B2814D'

def set_start(x, y, w, c=COLOR):
    penup()
    setx(x)
    sety(y)
    setheading(towards(0, 0))
    width(w)
    pencolor(c)
    pendown()
    speed(0)


def left_rotate(time, angle, length):
    for i in range(time):
        left(angle)
        forward(length)


def right_rotate(time, angle, length):
    for i in range(time):
        right(angle)
        forward(length)


def draw_circle(radius, color, color2=''):
    if color2 == '':
        color2 = color
    penup()
    setheading(towards(0, 0))
    right(90)
    pencolor(color)
    pendown()
    begin_fill()
    circle(radius)
    fillcolor(color2)
    end_fill()


def fill_color(color):
    def decorator_all(func):
        def wrapper(*args, **kwargs):
            begin_fill()
            func(*args, **kwargs)
            fillcolor(color)
            end_fill()
        return wrapper
    return decorator_all


def fill_color_patch(x, y, c='#fffffb'):
    set_start(x, y, 1, c=c)
    forward(1)


def head_outline():
    set_start(0, -40, 2.5)
    right(90)
    left_rotate(5, 3, 14)
    left_rotate(5, 8, 8)
    left_rotate(10, 5, 6.5)
    left_rotate(5, 5.5, 10)
    left_rotate(25, 4, 10)
    left_rotate(6, 5.5, 5)
    left_rotate(7, 3, 7)
    left_rotate(5, 10, 8)
    left_rotate(5, 3, 14)


@fill_color('#fdb933')
def draw_head():
    head_outline()
    pencolor('#CDCDCD')
    goto(0, -40)


@fill_color('#fffffb')
def draw_face():
    set_start(0, -40, 2.5)
    right(90)
    left_rotate(5, 3, 14)
    left_rotate(1, 80, 2.5)
    pencolor('#fffffb')
    left_rotate(12, 5, 6.5)
    left_rotate(5, 6, 15)
    left_rotate(5, 5, 10)
    left_rotate(5, 12, 10)
    backward(0.5)
    left(65)
    pencolor(COLOR)
    backward(3)
    left_rotate(5, 3, 14)
    forward(5)


def draw_moustache():
    fill_color_patch(-41, -31)
    begin_fill()
    set_start(-41, -31, 2.5)
    right(180)
    left_rotate(4, 20, 4)
    left_rotate(1, 90, 8)
    right(150)
    left_rotate(4, 25, 3)
    forward(6)
    left_rotate(1, 110, 5.5)
    right(165)
    left_rotate(4, 15, 3.2)
    left(150)
    right_rotate(3, 30, 2.2)
    right_rotate(1, 105, 5)
    left(130)
    right_rotate(6, 5, 1.8)
    right_rotate(1, 130, 2)
    left(60)
    left_rotate(2, 30, 1)
    left_rotate(4, 28, 4)
    fillcolor('#fffffb')
    end_fill()
    set_start(-45, -28, 2.5)
    right(70)
    left_rotate(5, 2.5, 4)
    left_rotate(4, 9, 3)
    left_rotate(5, 3, 4.5)


def draw_mouth():
    set_start(-17, 22, 2.5)
    right_rotate(1, 45, 14)
    left_rotate(1, 85, 35)
    left_rotate(1, 70, 7)
    set_start(-17, 22, 2.5)
    right_rotate(1, 45, 14)
    right_rotate(1, 78, 36)
    right_rotate(1, 65, 6)
    set_start(-17, 22, 2.5)
    right_rotate(1, 45, 14)
    left_rotate(1, 85, 30)
    right_rotate(1, 108, 12)
    right_rotate(1, 140, 5)
    set_start(-17, 22, 2.5)
    right_rotate(1, 45, 14)
    right_rotate(1, 75, 28)
    left_rotate(1, 85, 10)
    left_rotate(1, 130, 8)
    set_start(3, 0, 2.5)
    left(90)
    right_rotate(5, 5, 4.8)
    right_rotate(4, 18, 1.8)
    left_rotate(1, 3, 27)
    right_rotate(4, 18, 1)
    right_rotate(1, 15, 22)
    right(88)
    right_rotate(9, 1, 4.5)
    begin_fill()
    set_start(3, 0, 2.5)
    left(90)
    right_rotate(4, 5, 4.8)
    right_rotate(1, 5, 2)
    right_rotate(1, 67, 37)
    right_rotate(1, 86, 18)
    fillcolor('#f15a22')
    end_fill()
    begin_fill()
    set_start(3, 0, 2.5)
    pencolor('#aa2116')
    left(90)
    right_rotate(2, 5, 6)
    right(120)
    left_rotate(10, 6, 2)
    right(55)
    left_rotate(11, 5.5, 1.8)
    right_rotate(1, 110, 10)
    right(100)
    right_rotate(9, 1, 4.5)
    fillcolor('#aa2116')
    end_fill()
    set_start(3, 0, 2.5)
    left(90)
    right_rotate(5, 5, 4.8)
    right_rotate(4, 18, 1.8)
    left_rotate(1, 3, 27)
    right_rotate(4, 18, 1)
    right_rotate(1, 15, 22)
    right(88)
    right_rotate(9, 1, 4.5)
    set_start(21, 10, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(10, 16, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(21, 19, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(-57, 16, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(-51, 24, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')
    set_start(-64, 24, 1, c='#fdb933')
    draw_circle(2.3, '#fdb933')


def draw_nose():
    set_start(6, 37, 1)
    pencolor('#e0861a')
    right(150)
    begin_fill()
    left_rotate(6, 3, 4)
    left_rotate(6, 15, 3)
    left_rotate(6, 3, 4)
    fillcolor('#e0861a')
    end_fill()
    set_start(6, 37, 1.5)
    right(120)
    begin_fill()
    left_rotate(5, 4, 4)
    left_rotate(3, 10, 3)
    left_rotate(5, 4, 4)
    left_rotate(7, 15, 0.8)
    left_rotate(5, 4, 4)
    left_rotate(5, 8, 2)
    left_rotate(5, 4, 4)
    left_rotate(7, 15, 0.8)
    fillcolor('#b4532a')
    end_fill()
    set_start(-16, 36, 1)
    pencolor('#d1923f')
    right(75)
    begin_fill()
    right_rotate(4, 15, 2)
    right_rotate(5, 26, 1)
    right_rotate(4, 15, 2)
    right_rotate(5, 26, 1)
    fillcolor('#d1923f')
    end_fill()
    set_start(-25, 25, 1)
    pencolor('#130c0e')
    left(110)
    begin_fill()
    left_rotate(6, 15, 1.5)
    left_rotate(5, 15, 1)
    fillcolor('#130c0e')
    end_fill()
    set_start(-10, 24, 1)
    pencolor('#130c0e')
    left(175)
    begin_fill()
    right_rotate(6, 15, 1.2)
    right_rotate(5, 15, 1)
    fillcolor('#130c0e')
    end_fill()


def draw_eye():
    set_start(-50, 34, 1, c='#130c0e')
    left(115)
    begin_fill()
    left_rotate(8, 6.5, 7)
    left_rotate(5, 15, 7)
    left_rotate(5, 10, 5.5)
    left_rotate(5, 15, 6)
    left_rotate(5, 5, 9.5)
    left_rotate(4, 30, 2)
    fillcolor('#130c0e')
    end_fill()
    set_start(-57, 40, 1, c='#fffffb')
    left(112)
    begin_fill()
    left_rotate(8, 6.5, 5)
    left_rotate(5, 15, 6)
    left_rotate(5, 10, 4.5)
    left_rotate(5, 15, 5)
    left_rotate(5, 6.5, 7)
    left_rotate(4, 15, 2)
    fillcolor('#fffffb')
    end_fill()
    set_start(-90, 62, 1, c='#563624')
    draw_circle(15, '#563624')
    set_start(-84, 59, 1, c='#130c0e')
    draw_circle(9, '#130c0e')
    set_start(-90, 63, 1, c='#fffffb')
    draw_circle(3.5, '#fffffb')
    set_start(16, 25, 1, c='#130c0e')
    right(150)
    begin_fill()
    right_rotate(8, 6.5, 7)
    right_rotate(5, 15, 7)
    right_rotate(5, 10, 5.5)
    right_rotate(5, 15, 6)
    right_rotate(5, 5, 9.5)
    right_rotate(4, 30, 2)
    fillcolor('#130c0e')
    end_fill()
    set_start(24, 28, 1, c='#fffffb')
    right(135)
    begin_fill()
    right_rotate(8, 7, 5)
    right_rotate(5, 15, 5.5)
    right_rotate(5, 10, 4.5)
    right_rotate(5, 15, 4.5)
    right_rotate(5, 6.5, 6.5)
    right_rotate(4, 13, 2)
    fillcolor('#fffffb')
    end_fill()
    set_start(57, 48, 1, c='#563624')
    draw_circle(15, '#563624')
    set_start(53, 44, 1, c='#130c0e')
    draw_circle(9, '#130c0e')
    set_start(38, 47, 1, c='#fffffb')
    draw_circle(3.5, '#fffffb')


def draw_brow():
    set_start(12, 88, 1, c='#130c0e')
    right(82)
    begin_fill()
    left_rotate(3, 3, 5)
    right_rotate(5, 4, 6)
    right_rotate(7, 24, 2.3)
    right_rotate(3, 5, 4.5)
    left_rotate(1, 90, 8)
    left(95)
    left_rotate(3, 8, 5)
    right_rotate(3, 25, 1.2)
    right_rotate(3, 11, 1.5)
    right_rotate(3, 25, 1.2)
    right_rotate(3, 3, 4.5)
    left_rotate(1, 85, 7)
    left_rotate(1, 90, 15)
    right_rotate(5, 30, 2.2)
    right_rotate(3, 9, 6)
    right_rotate(6, 3, 5)
    right_rotate(8, 18, 1.3)
    right_rotate(3, 10, 5.3)
    left_rotate(1, 90, 8)
    left(112)
    right_rotate(3, 3, 4.5)
    right_rotate(3, 25, 1)
    right_rotate(3, 10, 1.5)
    right_rotate(3, 28, 1)
    left_rotate(3, 5, 3)
    left_rotate(3, 25, 1)
    left_rotate(3, 5, 1.8)
    left_rotate(1, 90, 17)
    right_rotate(3, 35, 0.8)
    right_rotate(3, 10, 3)
    fillcolor('#130c0e')
    end_fill()
    set_start(88, -16, 1, c='#130c0e')
    begin_fill()
    right_rotate(5, 15, 3)
    right_rotate(4, 5.5, 3)
    right_rotate(3, 28, 1)
    right_rotate(5, 6, 4)
    fillcolor('#130c0e')
    end_fill()
    set_start(106, 9, 1, c='#130c0e')
    right(15)
    begin_fill()
    right_rotate(5, 5, 5.5)
    right_rotate(5, 29, 3)
    right_rotate(5, 5, 4.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(110, 36, 1, c='#130c0e')
    left(20)
    begin_fill()
    right_rotate(3, 10, 2)
    right_rotate(3, 10, 6)
    right_rotate(5, 29, 2)
    forward(20)
    fillcolor('#130c0e')
    end_fill()
    set_start(75, 76, 1, c='#130c0e')
    right(105)
    begin_fill()
    left_rotate(5, 10, 4)
    right_rotate(6, 28, 2)
    right_rotate(5, 10, 5)
    right_rotate(6, 25, 2)
    fillcolor('#130c0e')
    end_fill()
    set_start(-75, 100, 1, c='#130c0e')
    right(108)
    begin_fill()
    right_rotate(3, 3, 8)
    right_rotate(4, 35, 2)
    right_rotate(8, 9, 3.2)
    fillcolor('#130c0e')
    end_fill()
    set_start(-145, 58, 1, c='#130c0e')
    right(30)
    begin_fill()
    left_rotate(5, 15, 5)
    left_rotate(3, 18, 3)
    left(92)
    right_rotate(4, 5, 6)
    right_rotate(1, 5, 4)
    fillcolor('#130c0e')
    end_fill()
    set_start(-148, 46, 1, c='#130c0e')
    left(40)
    begin_fill()
    right_rotate(5, 10, 6.5)
    right_rotate(4, 32, 2)
    right_rotate(4, 10, 6.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(-138, 7, 1, c='#130c0e')
    left(10)
    begin_fill()
    left_rotate(5, 8, 4)
    left_rotate(6, 20, 1.5)
    left_rotate(4, 8, 4.5)
    fillcolor('#130c0e')
    end_fill()
    head_outline()


def draw_ear():
    set_start(101, 74, 2.5)
    left(150)
    begin_fill()
    left_rotate(5, 6, 3)
    left_rotate(5, 12, 5)
    left_rotate(3, 13, 12)
    left_rotate(5, 12, 7)
    left_rotate(4, 16, 5)
    fillcolor('#fdb933')
    end_fill()
    set_start(94, 89, 1, c='#f3715c')
    right(168)
    begin_fill()
    left_rotate(5, 17, 6)
    left_rotate(4, 20, 5)
    goto(94, 89)
    fillcolor('#f3715c')
    end_fill()
    set_start(-125, 98, 2.5)
    right(165)
    begin_fill()
    right_rotate(5, 6, 3)
    right_rotate(5, 12, 5)
    right_rotate(3, 13, 12)
    right_rotate(5, 12, 7)
    right_rotate(4, 16, 4.5)
    fillcolor('#fdb933')
    end_fill()
    set_start(-115, 110, 1, c='#f3715c')
    left(160)
    begin_fill()
    right_rotate(5, 17, 6)
    right_rotate(4, 20, 5.5)
    goto(-115, 110)
    fillcolor('#f3715c')
    end_fill()
    head_outline()


def draw_cap():
    set_start(55, 123, 2.5)
    right(150)
    left_rotate(13, 11, 12)
    set_start(18, 170, 2.5)
    right(180)
    begin_fill()
    left_rotate(10, 16, 4)
    fillcolor('#130c0e')
    end_fill()
    set_start(55, 123, 2.5)
    right(150)
    begin_fill()
    left_rotate(13, 11, 12)
    fillcolor('#FF0000')
    end_fill()
    set_start(55, 123, 2.5)
    right(113)
    begin_fill()
    left_rotate(15, 5, 8.6)
    fillcolor('#228B22')
    end_fill()
    set_start(30, 142, 2.5)
    right(170)
    left_rotate(18, 8.9, 5)
    set_start(-2, 150, 2.5)
    left(178)
    right_rotate(4, 5, 6)
    set_start(55, 123, 2.5)
    begin_fill()
    goto(50.13, 124.56)
    setheading(148.5)
    left_rotate(12, 4, 10)
    fillcolor('#fdb933')
    end_fill()


def draw_shadow():
    fill_color_patch(75, -155)
    _draw_shadow()


@fill_color('#fab27b')
def _draw_shadow():
    set_start(75, -155, 1, c='#fab27b')
    left_rotate(5, 8, 5)
    left_rotate(10, 4, 10)
    left_rotate(5, 6, 9)
    left_rotate(4, 30, 4.5)
    left_rotate(5, 3.5, 16)
    left_rotate(3, 3.5, 18)
    left_rotate(3, 8, 5)
    left_rotate(4, 20, 1.5)
    goto(75, -155)


def draw_body():
    fill_color_patch(0, -40)
    set_start(0, -40, 2.5)
    right(90)
    begin_fill()
    left_rotate(2, 3, 14)
    width(2.4)
    goto(53, -74)
    pencolor('#87481f')
    left(20)
    right_rotate(5, 16, 1.3)
    right_rotate(4, 8, 8)
    right_rotate(1, 15, 2)
    right_rotate(1, 30, 7)
    right_rotate(3, 28, 2)
    right_rotate(1, 5, 4)
    right_rotate(1, 90, 6)
    right_rotate(1, 180, 10)
    right_rotate(3, 5, 8)
    right_rotate(3, 10, 6.5)
    right_rotate(2, 15, 2)
    right_rotate(4, 7, 4.5)
    left_rotate(2, 18, 1)
    left_rotate(4, 12, 5)
    left_rotate(4, 15, 3)
    left_rotate(4, 7, 4)
    right_rotate(1, 82, 2)
    right_rotate(4, 8, 7)
    right_rotate(2, 12, 2)
    right_rotate(4, 28, 1.5)
    right_rotate(1, 10, 6)
    right_rotate(1, 60, 4.5)
    right(170)
    right_rotate(5, 10, 5)
    right_rotate(10, 2.5, 5)
    goto(-71.81, -32.68)
    setheading(345.5)
    width(2.5)
    pencolor(COLOR)
    left_rotate(2, 3, 14)
    fillcolor('#fdb933')
    end_fill()
    set_start(0, -42, 1)
    right(90)
    pencolor('#fffffb')
    begin_fill()
    right_rotate(5, 12, 5)
    right_rotate(3, 13, 15)
    right_rotate(3, 25, 12)
    backward(1)
    right(23)
    left_rotate(3, 15, 6)
    right(5)
    right_rotate(3, 20, 11)
    right_rotate(3, 15, 12)
    right_rotate(3, 15, 10)
    right_rotate(1, 15, 20)
    fillcolor('#fffffb')
    end_fill()
    set_start(37, -125, 1)
    pencolor('#130c0e')
    begin_fill()
    right_rotate(1, 5, 8)
    right_rotate(4, 30, 1.5)
    right_rotate(1, 20, 6)
    fillcolor('#130c0e')
    end_fill()
    set_start(29, -130, 1)
    pencolor('#130c0e')
    begin_fill()
    left(20)
    right_rotate(2, 5, 5)
    left_rotate(4, 30, 1.5)
    left_rotate(2, 10, 4)
    right_rotate(3, 20, 2)
    left(155)
    left_rotate(3, 8, 5)
    fillcolor('#130c0e')
    end_fill()
    set_start(-62, -139, 1)
    pencolor('#130c0e')
    begin_fill()
    right(65)
    left_rotate(2, 10, 4)
    left_rotate(3, 25, 1.5)
    left_rotate(1, 10, 2)
    left_rotate(3, 28, 1.5)
    right_rotate(3, 10, 3.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(-71, -118, 1)
    pencolor('#130c0e')
    begin_fill()
    right(50)
    left_rotate(4, 10, 2.5)
    left_rotate(5, 28, 1.5)
    right_rotate(3, 10, 2.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(-75, -94, 1)
    pencolor('#130c0e')
    begin_fill()
    right(30)
    left_rotate(4, 10, 2.5)
    left_rotate(5, 28, 1.5)
    right_rotate(3, 10, 2.5)
    fillcolor('#130c0e')
    end_fill()


def draw_left_hand():
    set_start(0, -40, 2.5)
    right(90)
    left_rotate(4, 3, 14)
    left_rotate(1, 3, 8)
    right_rotate(1, 33, 3)
    begin_fill()
    left_rotate(1, 0, 4)
    left_rotate(3, 7, 7)
    left_rotate(4, 18, 3.8)
    set_start(103, -26, 2.5)
    right_rotate(3, 20, 4.5)
    right_rotate(3, 20, 2.5)
    right_rotate(2, 20, 2)
    right_rotate(2, 18, 5)
    right_rotate(5, 30, 1.5)
    right_rotate(1, 5, 8)
    right_rotate(1, 180, 2)
    right_rotate(2, 40, 3.5)
    set_start(106, -8, 2.5)
    right(90)
    right_rotate(2, 10, 4)
    right_rotate(4, 24, 3)
    right_rotate(2, 10, 4)
    right_rotate(2, 20, 5)
    right_rotate(5, 26, 1.2)
    right_rotate(2, 10, 4)
    right_rotate(1, 190, 4)
    right_rotate(1, 90, 3)
    set_start(128, -12, 2.5)
    left(155)
    right_rotate(3, 20, 5.5)
    right_rotate(2, 25, 1.5)
    right_rotate(1, 25, 4)
    right_rotate(3, 25, 2)
    right_rotate(2, 10, 3)
    set_start(124, -30, 2.5)
    left(150)
    right_rotate(8, 25, 2)
    right_rotate(1, 15, 3)
    right_rotate(2, 28, 2)
    set_start(115, -35, 2.5)
    left(100)
    right_rotate(5, 26, 1.8)
    right_rotate(1, 25, 5)
    set_start(103, -31, 2.5)
    left(135)
    right_rotate(5, 10, 5)
    right_rotate(4, 15, 6)
    left_rotate(1, 100, 7)
    right(120)
    right_rotate(3, 12, 2.5)
    left(170)
    right_rotate(3, 15, 3)
    right(110)
    right_rotate(3, 12, 3)
    left(140)
    right_rotate(3, 12, 3)
    right(120)
    right_rotate(3, 10, 3.5)
    left_rotate(1, 125, 10)
    right_rotate(3, 23, 3)
    right_rotate(3, 9, 9.5)
    fillcolor('#fdb933')
    end_fill()
    set_start(115, -35, 2.5)
    left(100)
    begin_fill()
    right_rotate(5, 26, 1.8)
    right_rotate(1, 25, 5)
    pencolor('#fffffb')
    width(1)
    left(90)
    right_rotate(4, 40, 2)
    left(90)
    right_rotate(4, 40, 1)
    left_rotate(1, 135, 5)
    right(80)
    right_rotate(3, 26, 4.5)
    right(130)
    left_rotate(3, 28, 3)
    fillcolor('#fffffb')
    end_fill()
    set_start(61, -33, 1)
    left(118)
    pencolor('#130c0e')
    begin_fill()
    right_rotate(3, 5, 3.5)
    right_rotate(4, 32, 1.5)
    right_rotate(3, 12, 2.7)
    fillcolor('#130c0e')
    end_fill()
    set_start(78, -36, 1)
    left(110)
    pencolor('#130c0e')
    begin_fill()
    left_rotate(3, 5, 3.5)
    right(50)
    right_rotate(4, 20, 1)
    right_rotate(5, 10, 3)
    fillcolor('#130c0e')
    end_fill()
    set_start(94, -35, 1)
    left(125)
    pencolor('#130c0e')
    begin_fill()
    left_rotate(3, 5, 2)
    right(50)
    right_rotate(4, 25, 2)
    right_rotate(3, 10, 2.2)
    fillcolor('#130c0e')
    end_fill()


def draw_right_hand():
    fill_color_patch(-44.24, -37.54)
    set_start(-44.24, -37.54, 2.5)
    setheading(351.5)
    begin_fill()
    right(177)
    right_rotate(4, 3, 14)
    right(3)
    goto(-106, -22)
    set_start(-106, -22, 2.5)
    right(175)
    right_rotate(3, 5, 5.5)
    right_rotate(3, 22, 4)
    right(80)
    left_rotate(2, 25, 4)
    left_rotate(4, 35, 5.5)
    left_rotate(3, 30, 1.5)
    left_rotate(3, 20, 2)
    left_rotate(1, 10, 2.5)
    right(120)
    left_rotate(3, 20, 2.5)
    set_start(-143, -2, 2.5)
    left(120)
    left_rotate(4, 25, 3.5)
    left_rotate(1, 35, 3)
    left_rotate(2, 15, 3)
    left_rotate(5, 22, 3.5)
    left_rotate(2, 20, 2.5)
    set_start(-155, -7, 2.5)
    left(170)
    left_rotate(2, 35, 3.5)
    left_rotate(2, 12, 4.5)
    left_rotate(3, 28, 4)
    left_rotate(3, 10, 3)
    left_rotate(3, 28, 3.5)
    set_start(-158, -27, 2.5)
    right(130)
    left_rotate(3, 30, 2.5)
    left_rotate(4, 13, 4)
    left_rotate(4, 35, 2.5)
    set_start(-135, -25, 2.5)
    right(95)
    left_rotate(3, 12, 9)
    left_rotate(4, 12, 4)
    right_rotate(1, 90, 8)
    left(120)
    left_rotate(3, 12, 3)
    right(160)
    left_rotate(3, 10, 4)
    left(120)
    left_rotate(3, 12, 3.5)
    right(145)
    left_rotate(3, 10, 3.5)
    left(125)
    left_rotate(3, 10, 3.5)
    right_rotate(1, 135, 10)
    fillcolor('#fdb933')
    end_fill()
    fill_color_patch(-107, -23)
    begin_fill()
    set_start(-107, -23, 1)
    pencolor('#130c0e')
    right(90)
    right_rotate(3, 3, 3.5)
    left_rotate(5, 25, 1)
    left_rotate(3, 15, 3.2)
    fillcolor('#130c0e')
    end_fill()
    fill_color_patch(-122, -25)
    begin_fill()
    set_start(-122, -25, 1)
    pencolor('#130c0e')
    right(120)
    left_rotate(3, 5, 2)
    left_rotate(4, 30, 1.4)
    left_rotate(3, 15, 3)
    fillcolor('#130c0e')
    end_fill()


def draw_clothes():
    set_start(0, -40, 2.5)
    right(90)
    begin_fill()
    left_rotate(3, 3, 14)
    goto(47.57, -36.43)
    setheading(94.25)
    left(171)
    left_rotate(3, 9, 9.5)
    left_rotate(1, 9, 3)
    left_rotate(2, 23, 2.5)
    right(150)
    left_rotate(3, 10, 5)
    right_rotate(3, 10, 10)
    right_rotate(1, 20, 4)
    right_rotate(2, 10, 4)
    right(90)
    left_rotate(5, 5, 10)
    fillcolor('#FF0000')
    end_fill()
    set_start(0, -40, 2.5)
    right(90)
    begin_fill()
    left_rotate(1, 3, 14)
    left_rotate(1, 3, 13)
    right(88)
    right_rotate(5, 5, 10)
    goto(21.85, -91.11)
    setheading(197.25)
    right_rotate(1, 20, 4)
    right_rotate(2, 10, 4)
    right(90)
    left_rotate(5, 5, 10)
    fillcolor('#228B22')
    end_fill()
    set_start(-44.24, -37.54, 2.5)
    setheading(351.5)
    begin_fill()
    right(177)
    right_rotate(2, 3, 14)
    right_rotate(1, 3, 7)
    left(65)
    left_rotate(4, 7, 10)
    left_rotate(3, 6, 10)
    left_rotate(1, 0, 2)
    left(128)
    right_rotate(6, 7, 6.1)
    right_rotate(2, 7, 6.1)
    left(125)
    right_rotate(5, 4, 11)
    fillcolor('#FF0000')
    end_fill()
    set_start(-44.24, -37.54, 2.5)
    setheading(351.5)
    begin_fill()
    right(177)
    right_rotate(1, 3, 14)
    right_rotate(1, 3, 8)
    left(92)
    left_rotate(4, 8, 7)
    right(10)
    right_rotate(4, 3, 6)
    goto(-59.29, -87.30)
    setheading(2.5)
    right_rotate(2, 7, 6.1)
    left(125)
    right_rotate(5, 4, 11)
    fillcolor('#228B22')
    end_fill()


def draw_tail():
    set_start(53, -74, 2.4, c='#87481f')
    begin_fill()
    setheading(26)
    right_rotate(5, 16, 1.3)
    right_rotate(1, 8, 8)
    right_rotate(1, 8, 4)
    left(60)
    right_rotate(1, 3, 3)
    pencolor(COLOR)
    forward(5)
    right_rotate(4, 3, 8)
    left_rotate(3, 3, 7)
    left_rotate(2, 5, 3)
    left_rotate(5, 6, 6)
    left_rotate(3, 8, 7)
    left_rotate(5, 12, 6)
    left_rotate(5, 10, 6)
    left_rotate(5, 15, 2)
    left_rotate(2, 20, 2)
    left_rotate(3, 10, 3)
    right_rotate(2, 13, 5)
    right_rotate(2, 20, 6)
    right_rotate(2, 12, 6)
    right_rotate(5, 7.5, 5)
    right_rotate(6, 3, 4)
    left_rotate(4, 2, 8.5)
    fillcolor('#fdb933')
    end_fill()
    set_start(53, -74, 2.4, c='#87481f')
    begin_fill()
    setheading(26)
    right_rotate(5, 16, 1.3)
    right_rotate(1, 8, 8)
    right_rotate(1, 8, 3)
    left(60)
    right_rotate(1, 3, 2)
    pencolor('#130c0e')
    left_rotate(3, 25, 2)
    left_rotate(3, 5, 1.8)
    left_rotate(1, 78, 8.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(83, -81, 1, c='#130c0e')
    begin_fill()
    left(140)
    right_rotate(5, 8, 2)
    left_rotate(1, 105, 5)
    right_rotate(2, 3, 5.5)
    left(50)
    left_rotate(3, 15, 4.1)
    fillcolor('#130c0e')
    end_fill()
    set_start(109, -89, 1, c='#130c0e')
    begin_fill()
    left(150)
    right_rotate(3, 5, 2)
    right_rotate(4, 15, 2)
    left_rotate(1, 125, 6)
    left_rotate(2, 3, 7)
    left(85)
    left_rotate(3, 15, 6.05)
    left(68)
    right_rotate(3, 5, 5)
    fillcolor('#130c0e')
    end_fill()
    set_start(132, -88, 1, c='#130c0e')
    begin_fill()
    left(180)
    right_rotate(5, 10, 4.1)
    left_rotate(1, 100, 6)
    left_rotate(2, 5, 7)
    left(75)
    left_rotate(5, 10, 5)
    left(75)
    right_rotate(3, 8, 4.5)
    fillcolor('#130c0e')
    end_fill()
    set_start(150, -71, 1, c='#130c0e')
    begin_fill()
    right(140)
    right_rotate(5, 15, 5.8)
    left_rotate(1, 130, 6)
    left_rotate(2, 10, 5)
    left(30)
    left_rotate(5, 15, 5.6)
    left(81)
    right_rotate(3, 8, 3)
    fillcolor('#130c0e')
    end_fill()
    set_start(147, -51, 1, c='#130c0e')
    begin_fill()
    right(125)
    right_rotate(5, 10, 4)
    left(145)
    left_rotate(2, 10, 6.5)
    left_rotate(6, 14, 2)
    left_rotate(4, 22, 2)
    fillcolor('#130c0e')
    end_fill()


def draw_drum():
    set_start(-136, -12, 2, c='#87481f')
    begin_fill()
    right_rotate(1, 78, 17)
    right_rotate(5, 30, 1.2)
    right_rotate(1, 30, 17)
    fillcolor('#FF0000')
    end_fill()
    set_start(-140, -2, 2, c='#87481f')
    begin_fill()
    left_rotate(1, 108, 10)
    right_rotate(1, 90, 4)
    left_rotate(5, 16, 7)
    left_rotate(5, 19, 6.5)
    forward(4)
    left_rotate(5, 18, 7.5)
    left_rotate(5, 18, 6.1)
    left_rotate(1, 180, 3)
    left_rotate(1, 95, 10)
    fillcolor('#FF0000')
    end_fill()
    set_start(-156.34, 48.19, 1, c='#87481f')
    setheading(199)
    left(12)
    left_rotate(10, 14.5, 5.8)
    set_start(-140, 12, 1, c='#87481f')
    setheading(20)
    begin_fill()
    left_rotate(5, 14, 5.2)
    left_rotate(3, 15, 4.5)
    left_rotate(5, 18, 5)
    left_rotate(5, 16, 5.5)
    left_rotate(3, 18, 5)
    fillcolor('#fffffb')
    end_fill()
    set_start(-143, 14, 2.5, c='#FF0000')
    left_rotate(1, 117, 17)
    left_rotate(1, 90, 9)
    left(90)
    left_rotate(3, 5, 3.5)
    set_start(-146.8, 14, 2.5, c='#FF0000')
    left_rotate(1, 120, 14)
    set_start(-150, 34, 2.5, c='#FF0000')
    left_rotate(1, 120, 8.5)
    left(100)
    left_rotate(3, 17, 4)
    set_start(-140, 16, 2.5, c='#FF0000')
    left_rotate(1, 115, 14)
    right_rotate(1, 90, 13)
    right(90)
    right_rotate(4, 16, 4.5)
    set_start(-136, 18, 2.4, c='#FF0000')
    left_rotate(1, 112, 12)
    set_start(-142, 24, 2.5, c='#FF0000')
    left_rotate(1, 35, 10)
    set_start(-145, 32, 2.5, c='#FF0000')
    left_rotate(1, 115, 6)
    right_rotate(1, 85, 10)
    right(40)
    right_rotate(3, 18, 2)
    right_rotate(1, 95, 10)
    set_start(-149, 44, 2.5, c='#FF0000')
    left(60)
    right_rotate(3, 22, 3)
    set_start(-166, 20, 2.4)
    right(100)
    right_rotate(4, 32, 3)
    right_rotate(2, 12, 3.5)
    left_rotate(2, 10, 4)
    left_rotate(4, 25, 2.5)
    set_start(-196, 35, 2.4)
    draw_circle(3.5, COLOR, '#FF0000')
    set_start(-127, 38, 2.4)
    left(60)
    right_rotate(4, 32, 3)
    right_rotate(2, 12, 3.5)
    left_rotate(6, 28, 2)
    left_rotate(3, 15, 2)
    set_start(-115, 33, 2.4)
    draw_circle(3.5, COLOR, '#FF0000')


if __name__ == '__main__':
    title('PythonDrawTiger(公众号:Python碎片)')
    setup(420, 400, 150, 150)
    screensize(400, 380, '#FFE4E1')
    time.sleep(3)
    draw_head()
    draw_face()
    draw_eye()
    draw_nose()
    draw_mouth()
    draw_ear()
    draw_cap()
    draw_brow()
    draw_shadow()
    draw_body()
    draw_moustache()
    draw_left_hand()
    draw_right_hand()
    draw_clothes()
    draw_tail()
    draw_drum()
    set_start(1000, 1000, 2.5)
    done()
def drawChunLianBg(startX=0, startY=0, lenX=100, lenY=100):
    # 设置边框色和背景填充色
    color('Yellow', 'OrangeRed')
    # 抬笔,定位起点
    pu()
    goto(startX, startY)
    # 落笔,绘制春联矩形框,并填充颜色
    pd()
    begin_fill()
    for i in range(2):
        fd(lenX)
        rt(90)
        fd(lenY)
        rt(90)
    end_fill()
    # 结束后抬笔
    pu()

def writeWord(target_word, startx, starty):
    # 基于坐标,打印单个汉字
    color("black", "black")
    # 抬笔定位
    pu()
    goto(startx,starty)
    pd()
    # 基于字体,打印汉字
    write(target_word, move=False,align='left',font=('汉仪程行简',24, 'normal'))
    # write(target_word, move=False,align='left',font=('汉仪尚巍手书W',24, 'normal'))
    pu()

def writeWords(target_words, startx, starty,lineNum=1):
    # 打印多个汉字,lineNum控制每行的汉字数,默认为1
    # 向右、向下的偏移量
    right_shift = 0
    down_shift = 0
    # 遍历打印汉字
    for word in target_words:
        writeWord(word, startx+right_shift*45, starty-down_shift*45)
        right_shift += 1
        # 判断是否要换行
        if right_shift % lineNum == 0:
            down_shift += 1
            right_shift = 0
    pu()
if __name__ == '__main__':
    # title('PythonDrawTiger')
    setup(800,650)
    screensize(800,650, 'black')
    # screensize(800,650, '#FFE4E1')
    drawChunLianBg(-260, 215, 60, 500)
    writeWords(target_words="晚睡不起 吃完饭接着睡", startx=-245, starty=175)
    drawChunLianBg(190, 215, 60, 500)
    writeWords(target_words="一日多餐 顿顿无肉不欢", startx=205, starty=175)
    drawChunLianBg(-110, 300, 210, 60)
    writeWords(target_words="虎虎生威", startx=-90, starty=250,lineNum=4)
    draw_head()
    draw_face()
    draw_eye()
    draw_nose()
    draw_mouth()
    draw_ear()
    draw_cap()
    draw_brow()
    draw_shadow()
    draw_body()
    draw_moustache()
    draw_left_hand()
    draw_right_hand()
    draw_clothes()
    draw_tail()
    draw_drum()
    set_start(1000, 1000, 2.5)
    hideturtle()
    done()

返回:

虎 借鉴于公众号 Python碎片,春联 借鉴于公众号 字节杂谈

标签:turtle,rotate,set,python,start,right,fill,虎年,left
来源: https://blog.csdn.net/qq_25990967/article/details/122755257

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有