《穿红靴子的小鸭》这幅画临摹了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库画一只《穿红靴子的小鸭》相关推荐

  1. 用python画小黄人步骤图-学Python画画:应用Turtle库画一个蠢萌的小黄人

    学Python画画:应用Turtle库画一个蠢萌的小黄人 前言: 还记得小黄人哪只蠢萌蠢萌的单眼小黄人?就是喜欢做什么事都喜欢逞能的那只,下面用Python来实现一下,正在逃跑的小黄人.进群:7003 ...

  2. 用python画小黄人-学Python画画:应用Turtle库画一个蠢萌的小黄人

    学Python画画:应用Turtle库画一个蠢萌的小黄人 前言: 还记得小黄人哪只蠢萌蠢萌的单眼小黄人?就是喜欢做什么事都喜欢逞能的那只,下面用Python来实现一下,正在逃跑的小黄人.进群:7003 ...

  3. Python -- 大作业 — 使用turtle库画皮卡丘

    使用python的turtle库画皮卡丘 一.使用环境 在这里,我使用的是python 3.8.5版本的IDLE(也可以使用其他3.0以上版本,PyCharm也是可以的). 二.内容介绍 1.主要方法 ...

  4. 使用Python的内置turtle库画彩虹

    上图是使用turtle库绘制的彩虹.程序的关键点是将画笔的颜色渐变,再通过不断微小的角度转换绘制成彩虹 计算机中的颜色空间模型是典型的RGB模型,R,G,B分别对应光的三原色,色相是由RGB三个参数共 ...

  5. python画画用哪库好_学Python画画:应用Turtle库画一个蠢萌的小黄人

    t.pensize(4) t.speed(10) 设置画笔的大小.画图的速度,可以改变数值来提升画笔的速度. python学习关注我们企鹅qun: 8393 83765 各类入门学习资料免费分享哦! ...

  6. 用Python Turtle库画一个萌化的蜘蛛侠

    你是从什么时候开始喜欢上漫威电影的?美国队长,钢铁侠,雷神? 我先入坑的是因为看了蜘蛛侠,小时候看完就幻想着什么时候自己也能成为一个英雄,我觉得第一代蜘蛛侠刻画得是最好的,也是给我印象最深刻的一代蜘蛛 ...

  7. 用python的Turtle库画一个笑脸

    用python的Turtle库画一个笑脸 最近刚了解到python的turtle库,就简单的尝试一下,画一个笑脸. 效果图: 效果图看起来和原图的差别还是有点大,但是没关系,这只是一个尝试而已. 附上 ...

  8. 使用python的turtle库画表情包

    使用python的turtle库画表情包 话不多说,先上效果图,然后是代码 代码如下: import turtleturtle.penup() turtle.goto(-80,20) turtle.c ...

  9. 用Python的turtle库画太极图

    作为一名中医药大学的学生,对太极图那是情有独钟,这不,我刚开始学Python不久,便想着用turtle库画一个太极图,对turtle库的使用还不熟练,代码量可能有点多-- 后来又尝试了让太极转动起来: ...

最新文章

  1. 【iOS官方文档翻译】UICollectionView与UICollectionViewFlowLayout
  2. PW Live直播 | 清华大学​高天宇:对比学习及其在NLP中的应用
  3. java中对象类型转换_Java中的对象的类型转换介绍(附代码)
  4. [转]Hspice 语法手册
  5. Bootstrap3轮番插件的选项
  6. thunderx 循环获得_湖北专业生产CY310热循环风机厂商
  7. [转载] 消息中间件学习总结(8)——RocketMQ之RocketMQ捐赠给Apache那些鲜为人知的故事
  8. RiPlus子主题V1.3-Unreal[幻]主题WordPress主题模板美化wp主题源码
  9. jdk命令行工具:jstat与jmap
  10. 全新按摩控制板助力按摩产品发展
  11. android 渐变动画,Android-实现背景渐变动画
  12. 常见的导数公式和积分公式
  13. Zynga公布2020年第四季度及全年财务业绩
  14. python包NetworkX学习——最短路径dijkstra_path和dijkstra_path_length
  15. 哪个更好:Revo卸载程序或免费替代方案?
  16. 什么软件能测试gps高度,‎App Store: GPS海拔测量仪-实时高度测量海拔表
  17. 生成android 证书
  18. 多个路由器设置静态路由 不同网段可以互相访问
  19. 怎样让云盘和服务器同步更新,百度云网盘怎么设置同步文件夹、怎么进行文件同步?...
  20. Bcftools的下载与安装

热门文章

  1. 游戏创业团队应该选择Git还是Svn
  2. 人工智能:智慧环保(上海AI智慧环保,绿色新时代)
  3. Fluent的porous jump边界条件
  4. 大天使之剑h5服务器临时维护,大天使之剑H5合服细节 战盟对决时间安排
  5. 共享打印机计算机名没有反应,共享打印机接收到打印任务,但是没有反应该怎么处理 - 系统之家...
  6. 如何查看SQL Server的索引碎片情况并进行整理
  7. 基于 Layui 的后台框架模板 layuimini
  8. RealView MDK的指定位置
  9. 数据分析 # 深入分析近三年以来各大城市发展情况
  10. 商用三维虚拟数字人如何制作