python3 案例分享--小猪佩奇:
主要分为10个部分:鼻子、头、耳朵、眼睛、腮、嘴巴、身体、手臂、脚和尾巴,最后main()主函数调用运行,下面看下具体代码。
按先后顺序来划分,
1.鼻子源码,命名bizi.py
# coding: utf-8
import turtle as t
def draw_bizi():
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
t.begin_fill()
a = 0.4
for i in range(120):
if 0 <= i < 30 or 60 <= i < 90:
a = a+0.08
t.lt(3)
t.fd(a)
else:
a = a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
t.pu()
t.seth(90)
t.fd(25)
t.seth(0)
t.fd(10)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82, 45)
t.end_fill()
t.pu
t.seth(0)
t.fd(20)
t.pd()
t.pencolor(255, 155, 192)
t.seth(10)
t.begin_fill()
t.circle(5)
t.color(160, 82,45)
t.end_fill()
2.头的源码,命名head.py
# coding: utf-8
import turtle as t
def draw_head():
t.color((255, 155, 192), "pink")
t.pu()
t.seth(90)
t.fd(41)
t.seth(0)
t.fd(0)
t.pd()
t.begin_fill()
t.seth(180)
t.circle(300, -30)
t.circle(100, -60)
t.circle(80, -100)
t.circle(150, -20)
t.circle(60,-95)
t.seth(161)
t.circle(-300, 15)
t.pu()
t.goto(-100, 100)
t.pd()
t.seth(-30)
a = 0.4
for i in range(60):
if 0 <= i < 30 or 60 <= i <90:
a += 0.08
t.lt(3)
t.fd(a)
else:
a -= 0.08
t.lt(3)
t.fd(a)
t.end_fill()
3.耳朵的源码,命名ear.py
# coding: utf-8
import turtle as t
def draw_ear():
"""
画小猪佩奇的耳朵
:return:
"""
t.color((255, 255, 192), "pink")
t.pu()
t.seth(90)
t.fd(-7)
t.seth(0)
t.fd(70)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 54)
t.end_fill()
t.pu()
t.seth(90)
t.fd(-12)
t.seth(0)
t.fd(30)
t.pd()
t.begin_fill()
t.seth(100)
t.circle(-50, 50)
t.circle(-10, 120)
t.circle(-50, 56)
t.end_fill()
4.眼睛的源码,命名eyes.py
# coding: utf-8
import turtle as t
def draw_eyes():
"""
画小猪佩奇的眼睛
:return:
"""
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-95)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
t.color((255, 155, 192), "white")
t.pu()
t.seth(90)
t.fd(-25)
t.seth(0)
t.fd(40)
t.pd()
t.begin_fill()
t.circle(15)
t.end_fill()
t.color("black")
t.pu()
t.seth(90)
t.fd(12)
t.seth(0)
t.fd(-3)
t.pd()
t.begin_fill()
t.circle(3)
t.end_fill()
5.腮的源码,命名sai.py
# coding: utf-8
import turtle as t
def draw_sai():
"""
画小猪佩奇的腮
:return:
"""
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-95)
t.seth(0)
t.fd(65)
t.pd()
t.begin_fill()
t.circle(30)
t.end_fill()
6.嘴巴的源码,命名mouse.py
def draw_mouse():
"""
画小猪佩奇的嘴
:return: null
"""
t.color((239, 69, 19))
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(-100)
t.pd()
t.seth(-80)
t.circle(30, 40)
t.circle(40, 80)
7.身体的源码,命名为body.py
# coding: utf-8
import turtle as t
def draw_body():
"""
画小猪佩奇的身体
:return: null
"""
t.color((255, 99, 71), "red")
t.pu()
t.seth(90)
t.fd(-20)
t.seth(0)
t.fd(-78)
t.pd()
t.begin_fill()
t.seth(-130)
t.circle(100, 10)
t.circle(300, 30)
t.seth(0)
t.fd(230)
t.seth(90)
t.circle(300, 30)
t.circle(100, 3)
t.color((255, 155, 192), (255, 100, 100))
t.seth(-135)
t.circle(-80, 63)
t.circle(-150, 24)
t.end_fill()
8.手臂的源码,命名为hands.py
# coding: utf-8
import turtle as t
def draw_hands():
"""
画小猪佩奇的手
:return:
"""
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(-40)
t.seth(0)
t.fd(-27)
t.pd()
t.seth(-160)
t.circle(300, 15)
t.pu()
t.seth(90)
t.fd(15)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-10)
t.circle(-20, 90)
t.pu()
t.seth(90)
t.fd(30)
t.seth(0)
t.fd(237)
t.pd()
t.seth(-20)
t.circle(-300, 15)
t.pu()
t.seth(90)
t.fd(20)
t.seth(0)
t.fd(0)
t.pd()
t.seth(-170)
t.circle(20, 90)
9.脚的源码,命名为legs.py
# coding: utf-8
import turtle as t
def draw_legs():
"""
画小猪佩奇的脚
:return:
"""
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(-75)
t.seth(0)
t.fd(-180)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
t.pensize(10)
t.color((240, 128, 128))
t.pu()
t.seth(90)
t.fd(40)
t.seth(0)
t.fd(90)
t.pd()
t.seth(-90)
t.fd(40)
t.seth(-180)
t.color("black")
t.pensize(15)
t.fd(20)
10.尾巴的源码,命名为weiba.py
# coding: utf-8
import turtle as t
def draw_weiba():
"""
画小猪佩奇的尾巴
:return: null
"""
t.pensize(4)
t.color((255, 155, 192))
t.pu()
t.seth(90)
t.fd(70)
t.seth(0)
t.fd(95)
t.pd()
t.seth(0)
t.circle(70, 20)
t.circle(10, 330)
t.circle(70, 30)
11.main方法运行主函数,命名为main.py
import os, sys
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(BASE_DIR)
import turtle as t
from bizi import draw_bizi
import head
import ear
import eyes
import sai
import mouse
import body
import hands
from legs import draw_legs
from weiba import draw_weiba
def main():
"""
主函数
:return: null
"""
t.pensize(4)
t.colormode(255)
t.color((255, 155, 192), "pink")
t.setup(840, 500)
t.speed(10)
draw_bizi()
head.draw_head()
ear.draw_ear()
eyes.draw_eyes()
sai.draw_sai()
mouse.draw_mouse()
body.draw_body()
hands.draw_hands()
draw_legs()
draw_weiba()
t.exitonclick()
if __name__ == '__main__':
main()
最后的效果: