Python简笔画——用Turtle库画一只《穿红靴子的小鸭》
《穿红靴子的小鸭》这幅画临摹了ins博主@inky.diary的小鸭水彩画,并做了一些调整。
用Python的Turtle库画画,难度不大,熟悉了基础函数后,新手可以快速入门。基础函数可以参考博文《Python标准库之turtle库——基础函数详解》。在绘制过程中,更重要的是耐心和坚持,不断调整,直到绘制出满意的弧线。
由于绘制过程中会有大量的修改调整,要求绘制时注重点、线之间的关系,在修改一个点时,其他要素的相对平面关系尽量保持不变,这里 类似于函数 y = f(x),便于在修改不满意部分的同时,保留住其他满意的部分。另外,由于小鸭由大量circle()弧线组成,为了观察每段曲线的效果,可给每段circle()赋不同的color()辅助观察调整,绘制满意后再去掉多余颜色即可。
重复的绘制过程追求代码复用、封装成函数,使代码尽量简洁。
请吸鸭,嘎嘎:
#穿雨鞋的小鸭
from turtle import *#扁嘴
pensize(2)pu()
goto(-100,100)#上嘴最高顶点
seth(-50)
pd()
color('#6C3100','#FADD77')
begin_fill()
fd(16)
vertex_right = pos()#嘴最右顶点
rt(50)
fd(12)
vertex_down = pos()#下嘴最低顶点
rt(80)
fd(30)
circle(-3,200)
vertex_left = pos()#嘴最左顶点
goto(-100,100)
end_fill()
goto(vertex_left)#回到最左顶点
circle(-3,-200)#扁嘴
goto(vertex_right)#身体
#头颈背尾曲线
color('#B6A88E')
pu()
goto(-100,100)
pd()seth(80)
circle(-36,160)
fd(25)
circle(115,20)
circle(60,55)
circle(-200,20)
circle(110,20)
color('#7D6A4C')
circle(40,40)
color('#B6A88E')
seth(-100)
circle(-180,30)
circle(-20,50)#右鸭腿
circle(20,70)
color('#736856')
circle(-12,120)
leg_pos1 = pos()#定位左腿位置
fd(25)#前胸肚曲线
pu()
goto(vertex_down)
pd()
seth(-10)
color('#B9AD9D')
circle(-40,50)
circle(-80,48)
color('#736856')
circle(250,5)
circle(50,75)
color('#B9AD9D')
circle(220,28)#左鸭腿
pu()
seth(175)
fd(40)
pd()
seth(-120)
fd(8)
circle(-10,120)
leg_pos2 = pos()#定位右腿位置
fd(15)#眼睛
color('black')
#左眼
pu()
goto(vertex_down - (1,-29))
pd()
dot(4,'black')#相比circle(),不需要再额外填充颜色
#右眼
pu()
goto(vertex_down + (23,20))
pd()
dot(4,'black')#翅膀
color('#BCB2A6')
pu()
goto(vertex_down - (-75,130))
seth(130)
pd()
circle(-25,130)
circle(-100,30)
fd(85)
point = pos()
rt(137)
fd(52)
circle(-100,58)pu()
goto(point)
lt(30)
pd()
fd(60)pu()
goto(point)
pd()
lt(10)
fd(70)#腿部
#左腿
def leg(pos0):#鸭腿绘制函数pensize(8)color('#ECC578')pu()goto(pos0)seth(0)fd(7)seth(-90)fd(8.5)pd()fd(20)#腿长leg(leg_pos1)
leg(leg_pos2)#小红靴——函数
def boot(pos0):pensize(2)color('#B4070B','#FBA06B')pu()goto(pos0)#靴子右上顶点pd()begin_fill()seth(140)circle(25,80)seth(-80)fd(35)#fd(30)左侧线条circle(-2,60)#靴低fd(20)circle(4,180) seth(5)fd(30)circle(2,60)goto(pos0)#右侧线条end_fill()boot(leg_pos1-(-20,30))
boot(leg_pos2-(-20,30)) #小雨滴
color('#77DDFF','#D8E8E5')
fd_ls = [200,140,250,240,230,220,180,250]
lt_ls = [30,60,60,100,125,170,200,330]
for i in range(8):pu()home() lt(lt_ls[i])fd(fd_ls[i])pd()seth(-78)fd(15)begin_fill()circle(-3,200)end_fill()fd(15)#文字
pu()
goto(vertex_left)
seth(180)
fd(150)
seth(-90)
fd(300)
color('black')
write('code by totoup',font=("Arial",15,"normal"))hideturtle()
done()
Python简笔画——用Turtle库画一只《穿红靴子的小鸭》相关推荐
- 用python画小黄人步骤图-学Python画画:应用Turtle库画一个蠢萌的小黄人
学Python画画:应用Turtle库画一个蠢萌的小黄人 前言: 还记得小黄人哪只蠢萌蠢萌的单眼小黄人?就是喜欢做什么事都喜欢逞能的那只,下面用Python来实现一下,正在逃跑的小黄人.进群:7003 ...
- 用python画小黄人-学Python画画:应用Turtle库画一个蠢萌的小黄人
学Python画画:应用Turtle库画一个蠢萌的小黄人 前言: 还记得小黄人哪只蠢萌蠢萌的单眼小黄人?就是喜欢做什么事都喜欢逞能的那只,下面用Python来实现一下,正在逃跑的小黄人.进群:7003 ...
- Python -- 大作业 — 使用turtle库画皮卡丘
使用python的turtle库画皮卡丘 一.使用环境 在这里,我使用的是python 3.8.5版本的IDLE(也可以使用其他3.0以上版本,PyCharm也是可以的). 二.内容介绍 1.主要方法 ...
- 使用Python的内置turtle库画彩虹
上图是使用turtle库绘制的彩虹.程序的关键点是将画笔的颜色渐变,再通过不断微小的角度转换绘制成彩虹 计算机中的颜色空间模型是典型的RGB模型,R,G,B分别对应光的三原色,色相是由RGB三个参数共 ...
- python画画用哪库好_学Python画画:应用Turtle库画一个蠢萌的小黄人
t.pensize(4) t.speed(10) 设置画笔的大小.画图的速度,可以改变数值来提升画笔的速度. python学习关注我们企鹅qun: 8393 83765 各类入门学习资料免费分享哦! ...
- 用Python Turtle库画一个萌化的蜘蛛侠
你是从什么时候开始喜欢上漫威电影的?美国队长,钢铁侠,雷神? 我先入坑的是因为看了蜘蛛侠,小时候看完就幻想着什么时候自己也能成为一个英雄,我觉得第一代蜘蛛侠刻画得是最好的,也是给我印象最深刻的一代蜘蛛 ...
- 用python的Turtle库画一个笑脸
用python的Turtle库画一个笑脸 最近刚了解到python的turtle库,就简单的尝试一下,画一个笑脸. 效果图: 效果图看起来和原图的差别还是有点大,但是没关系,这只是一个尝试而已. 附上 ...
- 使用python的turtle库画表情包
使用python的turtle库画表情包 话不多说,先上效果图,然后是代码 代码如下: import turtleturtle.penup() turtle.goto(-80,20) turtle.c ...
- 用Python的turtle库画太极图
作为一名中医药大学的学生,对太极图那是情有独钟,这不,我刚开始学Python不久,便想着用turtle库画一个太极图,对turtle库的使用还不熟练,代码量可能有点多-- 后来又尝试了让太极转动起来: ...
最新文章
- 【iOS官方文档翻译】UICollectionView与UICollectionViewFlowLayout
- PW Live直播 | 清华大学​高天宇:对比学习及其在NLP中的应用
- java中对象类型转换_Java中的对象的类型转换介绍(附代码)
- [转]Hspice 语法手册
- Bootstrap3轮番插件的选项
- thunderx 循环获得_湖北专业生产CY310热循环风机厂商
- [转载] 消息中间件学习总结(8)——RocketMQ之RocketMQ捐赠给Apache那些鲜为人知的故事
- RiPlus子主题V1.3-Unreal[幻]主题WordPress主题模板美化wp主题源码
- jdk命令行工具:jstat与jmap
- 全新按摩控制板助力按摩产品发展
- android 渐变动画,Android-实现背景渐变动画
- 常见的导数公式和积分公式
- Zynga公布2020年第四季度及全年财务业绩
- python包NetworkX学习——最短路径dijkstra_path和dijkstra_path_length
- 哪个更好:Revo卸载程序或免费替代方案?
- 什么软件能测试gps高度,App Store: GPS海拔测量仪-实时高度测量海拔表
- 生成android 证书
- 多个路由器设置静态路由 不同网段可以互相访问
- 怎样让云盘和服务器同步更新,百度云网盘怎么设置同步文件夹、怎么进行文件同步?...
- Bcftools的下载与安装
热门文章
- 游戏创业团队应该选择Git还是Svn
- 人工智能:智慧环保(上海AI智慧环保,绿色新时代)
- Fluent的porous jump边界条件
- 大天使之剑h5服务器临时维护,大天使之剑H5合服细节 战盟对决时间安排
- 共享打印机计算机名没有反应,共享打印机接收到打印任务,但是没有反应该怎么处理 - 系统之家...
- 如何查看SQL Server的索引碎片情况并进行整理
- 基于 Layui 的后台框架模板 layuimini
- RealView MDK的指定位置
- 数据分析 # 深入分析近三年以来各大城市发展情况
- 商用三维虚拟数字人如何制作