Python Turtle绘图 鼠年画老鼠爷

大憨熊 提交于 2020-01-21 19:36:27

Python Turtle绘图 鼠年画老鼠爷

前言

为什么会无聊到想做这个呢?

谁还不是为了 24小时的请假时长 学会Turtle,掌握技术。

在这里插入图片描述
好吧,也不能只是为了那 24小时 ,主要还是通过这项活动学会了Python Turtle

这个神奇又强大的工具,操作起来真的就跟画笔没两样,牛批

虽然,这玩意很好入门。

但是博主愚钝,在女朋友十万分的鼓励和不断提出修改建议的情况下,敲了好久才有这只小老鼠。

所以哈,大家会儿借鉴的时候,稍微,就稍微啊,标一下出处。感恩啊!

效果图

在这里插入图片描述

必要知识

命令 说明
turtle.right(degree) 简称:rt() 向右转degree°
turtle.left(degree) 简称:lt() 向左转degree°
turtle.forward(dis) 简称:fd() 向当前画笔方向移动dis像素长度
turtle.backward(dis) 简称:bd() 向当前画笔相反方向移动dis像素长度
turtle.penup() 简称:pu() 提起笔移动,不绘制图形,用于另起一个地方绘制
turtle.pendown() 简称:pd() 移动时绘制图形,缺省时也为绘制
turtle.goto(x,y) 将画笔移动到坐标为x,y的位置
turtle.fillcolor(colorstring) 绘制图形的填充颜色
turtle.color(color1, color2) 同时设置pencolor=color1, fillcolor=color2
turtle.setheading(angle) 简称:seth() 设置当前朝向为angle角度
turtle.circle(radius, extent=None, steps=None) radius(半径):半径为正(负),表示圆心在画笔的左边(右边)画圆;extent(弧度) (optional);steps (optional) (做半径为radius的圆的内切正多边形,多边形边数为steps)。

进入正题

"""
作品名称:运鼠帷幄
前言:以下内容都是作者一点点测试出来的,如需转载,请附明源出处!
"""
import turtle as t
t.screensize(300,600)
def ears(dir):  # 耳朵,dir用来设置方向,左右耳对称
    #大圈
    t.pu()
    t.goto((0 - dir) * 150, 120)
    t.setheading(0)
    t.pd()
    t.fillcolor('#F2D391')
    t.begin_fill()
    t.circle(80)
    t.end_fill()
    #小圈
    t.pu()
    t.goto((0 - dir) * 120, 120)
    t.setheading(0)
    t.pd()
    t.fillcolor('#F9ECF5')
    t.begin_fill()
    t.circle(60)
    t.end_fill()
def face():  # 画脸
    #加底图
    t.pu()
    t.goto(-45,216)
    t.pd()
    t.color("#FFE4B5","#FFE4B5")#前一个是笔的颜色,后一个是填充的颜色
    t.begin_fill()
    t.goto(45,216)
    t.goto(65, -20)
    t.goto(-65, -20)
    t.end_fill()
    t.color("black","#FFE4B5")#底图增加完毕,笔的颜色置回黑色
    #右边脸颊
    t.pu()
    t.goto(65,-20)
    t.pd()
    t.fillcolor('#FFE4B5')
    t.begin_fill()
    t.setheading(10)
    t.circle(120,180)
    #左边脸颊
    t.pu()
    t.goto(-65,-20)
    t.pd()
    t.setheading(170)
    t.circle(-120,180)
    #下巴
    t.pu()
    t.goto(-65,-20)
    t.pd()
    t.goto(65,-20)
    t.end_fill()
def mouth(): # 嘴巴
    #右边嘴巴
    t.pu()
    t.goto(0, 30)
    t.pd()
    t.setheading(-70)
    t.circle(30,180)
    #左边嘴巴
    t.pu()
    t.goto(0, 30)
    t.pd()
    t.setheading(-110)
    t.circle(-30,180)
def eyes(dir):  # 画眼睛,dir用来设置方向,左右眼对称
    #大圈
    t.pu()
    t.goto((0 - dir) * 30, 140)
    t.setheading(90)
    t.pd()
    t.fillcolor('white')
    t.begin_fill()
    t.circle(dir * 30)
    t.end_fill()
    #小圈
    t.pu()
    t.goto((0 - dir) * 40, 135)
    t.setheading(90)
    t.pd()
    t.fillcolor('#AAC9E3')
    t.begin_fill()
    t.circle(dir * 17)
    t.end_fill()
    #小小圈
    t.pu()
    t.goto((0 - dir) * 45, 135)
    t.setheading(90)
    t.pd()
    t.color("white","white")
    t.begin_fill()
    t.circle(dir * 5)
    t.end_fill()
    t.color("black","white")
def nose():  # 画鼻子
    t.pu()
    t.goto(14, 80)
    t.setheading(90)
    t.pd()
    t.fillcolor('red')
    t.begin_fill()
    t.circle(14)
    t.end_fill()
def beard(): #画胡须
    #右边胡须
    t.pu()
    t.goto(90, 80)
    t.pd()
    t.setheading(-15)
    t.fd(150)
    t.pu()
    t.goto(90, 60)
    t.pd()
    t.setheading(-30)
    t.fd(150)
    #左边胡须
    t.pu()
    t.goto(-90, 80)
    t.pd()
    t.setheading(-165)
    t.fd(150)
    t.pu()
    t.goto(-90, 60)
    t.pd()
    t.setheading(-150)
    t.fd(150)
def hat(): #帽子
    #小的半圆
    t.pu()
    t.goto(50, 265)
    t.pd()
    t.setheading(90)
    t.fillcolor('red')
    t.begin_fill()
    t.circle(50,180)
    t.end_fill()
    #大的半圆
    t.fillcolor('red')
    t.begin_fill()
    t.pu()
    t.setheading(0)
    t.goto(-80, 210)
    t.pd()
    t.fd(160)
    t.setheading(90)
    t.circle(80,180)
    t.end_fill()
    #铜钱大圆
    t.fillcolor('yellow')
    t.begin_fill()
    t.pu()
    t.goto(0, 220)
    t.setheading(0)
    t.pd()
    t.circle(30)
    t.end_fill()
    #铜钱小方块
    t.fillcolor('red')
    t.begin_fill()
    t.pu()
    t.goto(-15, 235)
    t.setheading(0)
    t.pd()
    t.fd(30)
    t.lt(90)
    t.fd(30)
    t.lt(90)
    t.fd(30)
    t.lt(90)
    t.fd(30)
    t.end_fill()
def clothes(): #衣服
    #下边衣角
    t.pu()
    t.goto(-120,-168)
    t.pd()
    t.setheading(-90)
    t.fillcolor('red')
    t.begin_fill()
    t.fd(40)
    t.lt(90)
    t.fd(240)
    t.lt(90)
    t.fd(40)
    t.end_fill()
    #加底图
    t.color("red","red")##+42
    t.pu()
    t.goto(-110, -3)
    t.pd()
    t.begin_fill()
    t.goto(-110, -188)
    t.goto(110, -188)
    t.goto(110, -3)
    t.end_fill()
    t.color("black","red")
    #左边袖子
    t.pu()
    t.goto(-110, -3)
    t.pd()
    t.setheading(-150)
    t.begin_fill()
    t.circle(100,160)
    t.setheading(90)
    t.fd(100)
    t.lt(60)
    t.fd(70)
    t.end_fill()
    #右边袖子
    t.pu()
    t.goto(110, -3)
    t.pd()
    t.setheading(-30)
    t.begin_fill()
    t.circle(-100,160)
    t.setheading(90)
    t.fd(100)
    t.rt(60)
    t.fd(70)
    t.end_fill()
    #中间条纹
    t.pu()
    t.goto(-20, -8)
    t.pd()
    t.fillcolor('yellow')
    t.begin_fill()
    t.setheading(-90)
    t.fd(200)
    t.lt(90)
    t.fd(40)
    t.lt(90)
    t.fd(200)
    t.lt(90)
    t.fd(40)
    t.end_fill()
    #袖口条纹
    t.pu()
    t.goto(-43, -188)
    t.pd()
    t.setheading(90)
    t.begin_fill()
    t.fd(100)
    t.lt(60)
    t.fd(40)
    t.setheading(-90)
    t.fd(120)
    t.end_fill()
    t.pu()
    t.goto(43, -188)
    t.pd()
    t.setheading(90)
    t.begin_fill()
    t.fd(100)
    t.rt(60)
    t.fd(40)
    t.setheading(-90)
    t.fd(120)
    t.end_fill()
def hand(): #手
    #左手
    t.pu()
    t.goto(-43, -168)
    t.pd()
    t.setheading(0)
    t.fillcolor('#FFE4B5')
    t.begin_fill()
    t.circle(40,180)
    t.end_fill()
    #左手手指条纹
    t.pu()
    t.goto(-5, -118)
    t.pd()
    t.fd(28)
    t.pu()
    t.goto(-3, -128)
    t.pd()
    t.fd(30)
    t.pu()
    t.goto(-5, -138)
    t.pd()
    t.fd(28)
    #右手
    t.pu()
    t.goto(43, -88)
    t.pd()
    t.setheading(180)
    t.begin_fill()
    t.circle(40,180)
    t.end_fill()
    #右手手指条纹
    t.pu()
    t.goto(5, -118)
    t.pd()
    t.fd(28)
    t.pu()
    t.goto(3, -128)
    t.pd()
    t.fd(30)
    t.pu()
    t.goto(5, -138)
    t.pd()
    t.fd(28)
def trousers(): #裤子
    #左边裤子
    t.pu()
    t.goto(-110,-208)
    t.pd()
    t.setheading(-100)
    t.fillcolor('red')
    t.begin_fill()
    t.fd(100)
    t.setheading(0)
    t.fd(90)
    t.goto(0,-208)
    #右边裤子
    t.pu()
    t.goto(110,-208)
    t.pd()
    t.setheading(-80)
    t.fd(100)
    t.setheading(180)
    t.fd(90)
    t.goto(0,-208)
    t.end_fill()
def shoes(): #鞋子
    #左边鞋子
    t.pu()
    t.goto(-125,-307)
    t.pd()
    t.setheading(-90)
    t.fillcolor('yellow')
    t.begin_fill()
    t.circle(40,180)
    t.end_fill()
    #左边鞋子条纹
    t.pu()
    t.goto(-85,-347)
    t.pd()
    t.setheading(90)
    t.fd(30)
    #右边鞋子
    t.pu()
    t.goto(125,-307)
    t.pd()
    t.setheading(-90)
    t.begin_fill()
    t.circle(-40,180)
    t.end_fill()
    #右边鞋子条纹
    t.pu()
    t.goto(85,-347)
    t.pd()
    t.setheading(90)
    t.fd(30)
def Originator(): #就系我啦
    t.pu()
    t.goto(0,-350)
    t.pd()
    t.write("作者:二君爱读书", move=False, align="center", font=("Arial", 10, "normal"))
    t.pu()
    t.goto(0,-360)
    t.pd()
    t.setheading(90)
t.pensize(2)
clothes()
hand()
trousers()
shoes()
ears(1)
ears(-1)
face()
mouth()
eyes(1)
eyes(-1)
nose()
beard()
hat()
Originator()
t.done()

作者:二君爱读书
日期:2020年1月21日

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!