个人专栏:
算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客
Java基础:Java基础_IT闫的博客-CSDN博客
c语言:c语言_IT闫的博客-CSDN博客
MySQL:数据结构_IT闫的博客-CSDN博客
数据结构:数据结构_IT闫的博客-CSDN博客
C++:C++_IT闫的博客-CSDN博客
C51单片机:C51单片机(STC89C516)_IT闫的博客-CSDN博客
基于HTML5的网页设计及应用:基于HTML5的网页设计及应用_IT闫的博客-CSDN博客
python:python_IT闫的博客-CSDN博客
离散数学:离散数学_IT闫的博客-CSDN博客
欢迎收看,希望对大家有用!
目录
turtle动态小老虎:
代码功能:
实现代码:
实现效果:
turtle动态小老虎:
代码功能:
分布解析该代码:
实现代码:
实现效果:
使用Python的turtle库绘制了一个小老虎的图形。它能够实现绘制小老虎的头部、面部、眼睛、鼻子、嘴巴、耳朵、帽子、眉毛、阴影、身体、胡须、左手、右手、衣服、尾巴和鼓等功能。通过调用不同的函数来绘制不同部分的图形,最终完成了一个可爱的小老虎的图形。
# 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('小老虎')
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()
使用Python的turtle库绘制一个小老虎的图形。代码分为多个函数,每个函数负责绘制不同部分的图形。
首先,代码定义了一些常量和颜色。然后定义了一个名为set_start的函数,用于设置绘制起点的位置和属性。
接下来,代码定义了左旋转和右旋转的函数,用于控制画笔的旋转方向和移动距离。
之后,定义了绘制圆形的函数和填充颜色的装饰器函数。装饰器函数用于填充绘制的图形的颜色。
代码中还定义了绘制头部轮廓、头部、面部、胡须、嘴巴、鼻子、眼睛、眉毛、耳朵、帽子、阴影、身体、左手、右手、衣服、尾巴、鼓等各个部分的函数。每个函数使用turtle库的函数进行绘制,并使用装饰器函数添加填充颜色。
最后,在主函数中设置了窗口的大小和背景颜色,并依次调用各个绘制函数绘制出完整的小老虎图形。
绘制乌龟的图形的功能。具体功能如下:
- 绘制乌龟的鼻子。
- 绘制乌龟的头部。
- 绘制乌龟的耳朵。
- 绘制乌龟的眼睛。
- 绘制乌龟的腮。
- 绘制乌龟的嘴巴。
- 绘制乌龟的身体。
- 绘制乌龟的手。
- 绘制乌龟的脚。
- 绘制乌龟的尾巴。
通过调用
main()
函数,可以将所有的部分组合在一起,绘制出完整的乌龟图形。
导入 turtle 库
from turtle import*
这一部分代码实现的是小猪佩奇的鼻子和鼻孔,由两个圆圈组成。
def nose(x,y):#鼻子
penup()
goto(x,y)
pendown()
setheading(-30)
begin_fill()
a=0.4
for i in range(120):
if 0<=i<30 or 60<=i<90:
a=a+0.08
left(3)
forward(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)
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)
fd(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)
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()
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()