Python的魔法--用turtle自动画路飞草帽骷髅旗美国队长盾牌小猪佩奇
Posted yunyun云芸
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python的魔法--用turtle自动画路飞草帽骷髅旗美国队长盾牌小猪佩奇相关的知识,希望对你有一定的参考价值。
路飞草帽骷髅旗效果图(难度:⭐⭐)
更多Python有趣源码,基础学习视频400多集,300多本电子书,点击领取看我主页。
参考源码:
#路飞骷髅
import turtle as t
#黄底帽子
t.pu()
t.goto(0,200)
t.circle(-130,-80)
t.pd()
t.colormode(255)
t.pensize(5)
t.color(242,232,184) #帽子黄底RGB
t.begin_fill()
t.pencolor(0,0,0)
t.circle(-130,160)
t.seth(180)
t.fd(255)
t.end_fill()
#红色线条
t.begin_fill()
t.color(221,65,43) #帽子红色带
t.pencolor(0,0,0)
t.seth(80)
t.circle(-130,19)
t.seth(0)
t.fd(225)
t.seth(-59)
t.circle(-130,19)
t.seth(180)
t.fd(255)
t.end_fill()
#帽檐
t.begin_fill()
t.color(242,232,184)
t.pencolor(0,0,0)
t.fd(60)
t.circle(12,180)
t.fd(375)
t.circle(12,180)
t.fd(255 + 60)
t.end_fill()
#脸部下半轮廓
t.pu()
t.setpos(0,-30)
t.seth(-180)
t.circle(-130,-75)
t.pd()
t.circle(-130,150)
#眼睛鼻子
t.pu()
t.color(33,24,24) #眼睛、鼻子RGB
t.setpos(-45,64)
t.seth(-180)
t.pd()
t.begin_fill()
t.circle(33)
t.pu()
t.setpos(45,64)
t.pd()
t.circle(33)
t.end_fill()
t.pu()
t.setpos(0,5)
t.pd()
t.begin_fill()
t.circle(8)
t.end_fill()
#下巴
t.pencolor(0,0,0)
t.pu()
t.setpos(0,0)
t.seth(0)
t.circle(-75,45)
t.pd()
t.circle(-75,270)
#牙齿
t.pu()
t.setpos(0,120)
t.seth(0)
t.circle(-105,136)
t.pd()
t.circle(-105,86)
t.pu()
t.seth(0)
t.goto(0,200)
t.circle(-130,150)
t.pd()
t.circle(-130,60)
t.pu() #牙齿三根竖线
t.setpos(-30,-27)
t.seth(260)
t.pd()
t.fd(52)
t.pu()
t.setpos(30,-27)
t.pd()
t.seth(-260)
t.fd(-52)
t.pu()
t.setpos(0,-30)
t.seth(-90)
t.pd()
t.fd(56)
#上排右侧小爪爪
#释放注释为:上排右侧小爪爪实心金方案
t.pu()
#t.color(255,215,0) #金色的RGB
t.pencolor(0,0,0)
t.setpos(110,145)
t.seth(45)
t.pd()
#t.begin_fill()
t.fd(40)
t.seth(135)
t.circle(-30,235)
t.seth(-20)
t.circle(-30,220)
t.seth(-135)
t.fd(40)
#t.end_fill()
#上排左侧小爪爪
t.pu()
t.pencolor(0,0,0)
t.setpos(-110,145)
t.seth(135)
t.pd()
t.fd(40)
t.seth(45)
t.circle(30,235)
t.seth(-160)
t.circle(30,220)
t.seth(-45)
t.fd(40)
#下排右侧小爪爪
t.pu()
t.setpos(70,-10)
t.seth(-45)
t.pd()
t.fd(70)
t.seth(45)
t.circle(-30,235)
t.seth(-70)
t.circle(-30,255)
t.seth(135)
t.fd(22)
#下排左侧小爪爪
t.pu()
t.setpos(-70,-10)
t.seth(-135)
t.pd()
t.fd(70)
t.seth(135)
t.circle(30,235)
t.seth(-110)
t.circle(30,255)
t.seth(45)
t.fd(22)
t.done()
美国队长盾牌效果图(难度:⭐⭐)
参考源码:
-- coding:utf-8 --
import turtle
import math
def shield():
‘’’
该函数的作用是画一个美国队长的盾牌
‘’’
设置画布背景
turtle.bgcolor(’#FFFFFF’)
设置画笔速度
turtle.speed(10)
依次填充同心圆
fill_circle(’#FF0000’, 230)
fill_circle(’#FFFFFF’, 178)
fill_circle(’#FF0000’, 129)
fill_circle(’#0000FF’, 75)
完成五角星
draw_five(’#FFFFFF’, 75)
以下代码,将画好的图案按指定格式保存到当前文件目录
windows 可以使用.jpg格式,或.ps,MAC使用eps格式,或.ps
ts = turtle.getscreen()
ts.getcanvas().postscript(file=“shield.eps”)
启动事件循环,必须是乌龟图形程序中的最后一个语句
如果没有这个语句,代码运行完成后,窗口直接消失。
turtle.done()
def draw_circle(radium):
‘’’
该函数的作用是画一个圆线
:param radium:半径
‘’’
画笔定位到圆点
turtle.home()
提笔
turtle.penup()
向前移动指定的半径
turtle.forward(radium)
落笔
turtle.pendown()
偏转角度
turtle.setheading(90)
画一个指定半径的圆
turtle.circle(radium)
提笔
turtle.penup()
def fill_circle(color, r1):
‘’’
该函数的作用是,画一个圆环,有指定的填充色和半径
:param color:颜色
:param r1:半径
‘’’
设置画笔颜色
turtle.pencolor(color)
设置填充颜色
turtle.fillcolor(color)
开始填充
turtle.begin_fill()
画圆线
draw_circle(r1)
结束填充
turtle.end_fill()
画并填充五角星
def draw_five(color, radium):
‘’’
该函数的作用是画一个五角星
:param color:颜色
:para radium:
‘’’
画笔定位到圆点
turtle.home()
提笔
turtle.penup()
偏转90度
turtle.setheading(90)
向前移动90个像素
turtle.forward(radium)
偏转288度
turtle.setheading(288)
落笔
turtle.pendown()
radians()将角度转换为弧度
long_side = (math.sin(math.radians(36))*radium)/math.sin(math.radians(126))
设置画笔颜色
turtle.pencolor(color)
设置填充颜色
turtle.fillcolor(color)
开始填充
turtle.begin_fill()
for i in range(10):
turtle.forward(long_side)
if i % 2 == 0:
turtle.left(72)
else:
turtle.right(144)
结束填充
turtle.end_fill()
提笔
turtle.penup()
运行主函数
shield()
小猪佩奇效果图(难度:⭐⭐⭐)
参考源码:
coding:utf-8
import turtle as t
t.pensize(4) # 设置画笔的大小
t.colormode(255) # 设置GBK颜色范围为0-255
t.color((255,155,192),“pink”) # 设置画笔颜色和填充颜色(pink)
t.setup(840,500) # 设置主窗口的大小为840*500
t.speed(10) # 设置画笔速度为10
#鼻子
t.pu() # 提笔
t.goto(-100,100) # 画笔前往坐标(-100,100)
t.pd() # 下笔
t.seth(-30) # 笔的角度为-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) #向左转3度
t.fd(a) #向前走a的步长
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill() # 依据轮廓填充
t.pu() # 提笔
t.seth(90) # 笔的角度为90度
t.fd(25) # 向前移动25
t.seth(0) # 转换画笔的角度为0
t.fd(10)
t.pd()
t.pencolor(255,155,192) # 设置画笔颜色
t.seth(10)
t.begin_fill()
t.circle(5) # 画一个半径为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()
#头
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) # 顺时针画一个半径为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=a+0.08
t.lt(3) #向左转3度
t.fd(a) #向前走a的步长
else:
a=a-0.08
t.lt(3)
t.fd(a)
t.end_fill()
#耳朵
t.color((255,155,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()
#眼睛
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(每日一练:Python代码绘制航海王草帽路飞,打饭阿姨也能跟着学会的Turtle海龟绘图系列