Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。
turtle基础知识参考:
https://gitchat.blog.csdn.net/article/details/90696190
https://blog.csdn.net/zhouheng2018/article/details/79809374#3-turtle空间坐标体系
奉上我的效果图
不得不说确实有不便之处,例如画不规则图案要经常试坐标,找距离,角度,耗费了很长时间,不过几何图形就方便很多了,下面上代码
#!/usr/bin/env python
# -*- coding:utf-8 -*-
from turtle import *
'''
绘制皮卡丘头部
'''
def face(x,y):"""画脸"""begin_fill()penup()# 将海龟移动到指定的坐标goto(x, y)pendown()# 设置海龟的方向setheading(40)circle(-150, 69)fillcolor("#FBD624")# 将海龟移动到指定的坐标penup()goto(53.14, 113.29)pendown()setheading(300)circle(-150, 30)setheading(295)circle(-140, 20)print(position())forward(5)setheading(260)circle(-80, 70)print(position())penup()goto(-74.43,-79.09)pendown()penup()# 将海龟移动到指定的坐标goto(-144,103)pendown()setheading(242)circle(110, 35)right(10)forward(10)setheading(250)circle(80, 115)print(position())penup()goto(-74.43,-79.09)pendown()setheading(10)penup()goto(-144, 103)pendown()penup()goto(x, y)pendown()end_fill()# 下巴penup()goto(-50, -82.09)pendown()pencolor("#DDA120")fillcolor("#DDA120")begin_fill()setheading(-12)circle(120, 25)setheading(-145)forward(30)setheading(180)circle(-20, 20)setheading(143)forward(30)end_fill()# penup()# # 将海龟移动到指定的坐标# goto(0, 0)# pendown()def eye():"""画眼睛"""# 左眼color("black","black")penup()goto(-110, 27)pendown()begin_fill()setheading(0)circle(24)end_fill()# 左眼仁color("white", "white")penup()goto(-105, 51)pendown()begin_fill()setheading(0)circle(10)end_fill()# 右眼color("black", "black")penup()goto(25, 40)pendown()begin_fill()setheading(0)circle(24)end_fill()# 右眼仁color("white", "white")penup()goto(17, 62)pendown()begin_fill()setheading(0)circle(10)end_fill()
def cheek():"""画脸颊"""# 右边color("#9E4406", "#FE2C21")penup()goto(-130, -50)pendown()begin_fill()setheading(0)circle(27)end_fill()# 左边color("#9E4406", "#FE2C21")penup()goto(53, -20)pendown()begin_fill()setheading(0)circle(27)end_fill()def nose():"""画鼻子"""color("black", "black")penup()goto(-40, 38)pendown()begin_fill()circle(7,steps = 3)end_fill()
def mouth():"""画嘴"""color("black", "#F35590")# 嘴唇penup()goto(-10, 22)pendown()begin_fill()setheading(260)forward(60)circle(-11, 150)forward(55)print(position())penup()goto(-38.46, 21.97)pendown()end_fill()# 舌头color("#6A070D", "#6A070D")begin_fill()penup()goto(-10.00, 22.00)pendown()penup()goto(-14.29, -1.7)pendown()penup()goto(-52, -5)pendown()penup()goto(-60.40, 12.74)pendown()penup()goto(-38.46, 21.97)pendown()penup()goto(-10.00, 22.00)pendown()end_fill()color("black","#FFD624")penup()goto(-78, 15)pendown()begin_fill()setheading(-25)for i in range(2):setheading(-25)circle(35, 70)end_fill()color("#AB1945", "#AB1945")penup()goto(-52, -5)pendown()begin_fill()setheading(40)circle(-33, 70)goto(-16,-1.7)penup()goto(-18,-17)pendown()setheading(155)circle(25, 70)end_fill()def ear():"""画耳朵"""# 左耳color("black","#FFD624")penup()goto(-145, 93)pendown()begin_fill()setheading(165)circle(-248,50)right(120)circle(-248,50)end_fill()color("black", "black")penup()goto(-240, 143)pendown()begin_fill()setheading(107)circle(-170, 25)left(80)circle(229, 15)left(120)circle(300, 15)end_fill()# 右耳color("black", "#FFD624")penup()goto(30, 136)pendown()begin_fill()setheading(64)circle(-248, 50)right(120)circle(-248, 50)end_fill()color("black", "black")penup()goto(160, 200)pendown()begin_fill()setheading(52)circle(170, 25)left(116)circle(229, 15)left(71)circle(-300, 15)end_fill()def setting():"""设置参数"""pensize(2)# 隐藏海龟hideturtle()speed(10)
def main():"""主函数"""setting()face(-132,115)eye()cheek()nose()mouth()ear()done()if __name__ == '__main__':main()