用 Python 画哆啦 A 梦

来源:Python 技术「ID: pythonall」

相信大家童年的时候都看过哆啦 A 梦,他的口袋简直是无所不能,里面装满了各种神奇的道具。曾经的我也幻想过如果自己也有一个这样的口袋多好。今天我们就用 Python 来画一个哆啦 A 梦,怀念下我们的童年。

先来看看我们最终实现的效果图。

头部轮廓和围巾

老规矩,先引入今天要用到的库 turtle 并做一些基础设置。

import turtle as t
t.speed(5)t.pensize(1)t.screensize(500, 500)t.bgcolor('white')

首先,我们先画下多啦 A 梦头部外轮廓,头部轮廓主要是一个多半圆,围巾就是一个小的长方形。

# 头部def head(): t.up() t.circle(150, 45) t.down() t.fillcolor(head_color) t.begin_fill() t.circle(150, 270) t.end_fill()

# 围巾def scarf(): t.fillcolor(scarf_color) t.begin_fill() t.seth(0) t.fd(216) t.circle(-5, 90) t.fd(10) t.circle(-5, 90) t.fd(220) t.circle(-5, 90) t.fd(10) t.circle(-5, 90) t.end_fill()

来看下效果如何,呃呃呃,怎么感觉有点像大马路上的石墩儿呢,除了颜色有点像之外。

不急不急,我们再画一下脸部细节。

脸部

眼睛

俗话说眼睛是心灵的窗户,我们先把眼睛画上。

def face(): t.fd(186) t.lt(45) t.fillcolor(color_white) t.begin_fill() t.circle(120, 100) t.seth(180) t.fd(120) t.seth(215) t.circle(120, 100) t.end_fill()
def draw_eyes(): t.fillcolor(color_white) t.begin_fill() a = 2.5 for i in range(120): if 0 <= i < 30 or 60 <= i < 90: a -= 0.05 else: a += 0.05 t.lt(3) t.fd(a) t.end_fill()
def eyes(): go_to(0, 227) t.seth(90) draw_eyes() go_to(0, 227) t.seth(270) draw_eyes()

画眼睛不能直接画一个正圆,那样看起来会比较奇怪,要画一个椭圆才行,来看下效果。

眼睛画上去之后明显感觉精神多了,也有点多啦 A 梦的模样了。可是看起来还是有点不太对,是的,眼睛还没有画瞳孔。

简单起见,直接补两个黑色的圆圈圈即可。

def fill_eyes(): # 填充眼睛 go_to(-15, 220) t.pensize(12) t.color('black') for i in range(30): t.forward(2) t.right(12) go_to(15, 220) for i in range(30): t.forward(2) t.left(12) t.pensize(1)

不错不错,越来越有样了。下面我们把鼻子和嘴巴加上。

鼻子 & 嘴巴

鼻子也不难,在眼睛下面画个小圈圈就行,嘴巴就类似一个倒 T 字。

# 鼻子def nose(): go_to(-13, 166) t.seth(315) t.fillcolor(nose_color) t.begin_fill() t.circle(20) t.end_fill()

# 嘴巴def mouth(): go_to(0, 156) t.seth(270) t.fd(100) pos = t.pos() t.seth(0) t.circle(110, 60) go_to(pos[0], pos[1]) t.seth(180) t.circle(-110, 60)

离成功就剩下最后一步了,把胡须和铃铛画上就大功告成了。

胡须 & 铃铛

胡须就类似画猫的胡须就好,铃铛表复杂些,大圆套小圆,还有装饰。

# 胡须def mustache(): h = 70 go_to(30, 140) t.seth(15) t.fd(h)
go_to(30, 130) t.seth(0) t.fd(h)
go_to(30, 120) t.seth(-15) t.fd(h)
go_to(-30, 140) t.seth(150) t.fd(h)
go_to(-30, 130) t.seth(180) t.fd(h)
go_to(-30, 120) t.seth(195) t.fd(h)
# 铃铛def bell(): # 大圆 go_to(0, 33) t.pensize(1) t.fillcolor("#FCE341") t.begin_fill() t.circle(25) t.end_fill()
# 横条纹 go_to(-15, 22) t.seth(0) t.forward(42) go_to(-18, 17) t.seth(0) t.forward(47)
# 小圆 go_to(5, 0) t.pensize(1) t.color("black", '#79675D') t.begin_fill() t.circle(5) t.end_fill() t.seth(270) t.pensize(1) t.forward(15)

最后我们写一个入口函数,将这些画身体不同部位的函数给封装起来。代码如下;

if __name__ == '__main__': head() scarf() face() eyes() fill_eyes() nose() mouth() mustache() bell() go_to() t.hideturtle() t.done()

最终效果如下:

是不是觉得很简单,快去后台获取源码 run 起来吧。有兴趣的读者还可以把身体给加上去。

总结

本文我们使用 Python 的 turtle 库画了一下哆啦 A 梦,不知道和大家记忆中的哆啦 A 梦是否一样呢。

其实 turtle 使用不难,主要是要理清乌龟的位置以及朝向,然后就是其运动模式,直线运动,还是曲线运动以及怎调换运动方向。其中乌龟的坐标计算比较麻烦,尤其是做曲线运动的时候,大家可以结合 pos() 函数来获取查看乌龟的坐标,有助于你理清画图思路。

大家多加练习,肯定都可以画出自己想画的,有趣且好玩的图像。

(0)

相关推荐

  • Python|有趣的画图

    前言在学习python过程中代码写久了偶尔会感觉到枯燥,这时可以用一些简单的代码画一些有趣的图来调节一下.同时也可以激发对python的兴趣,发现原来代码还可以这样有趣.小编这里会写一些简单画图.问题 ...

  • 【每周一坑】阿姆斯特朗数

    这是一个很经典的编程练习题: 如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋数.自幂数). 如 407 = 43 + 03 + 73 就是一个阿姆斯特朗数. 写一段代码,输出 ...

  • 用Python画一颗心、小人发射爱心(附源码)

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 Python免费学习资料 ...

  • 【青少年编程】绘制五星红旗

    Scratch竞赛交流群已成立(适合6至18周岁的青少年),公众号后台回复[Scratch],即可进入. 如果加入了之前的社群不需要重复加入. 类比思维就是指把两个或者两类事物进行比较,并进行逻辑推理 ...

  • 『手抄报元素』像素哆啦A梦,画个不一样的蓝胖子~

    手抄报作业 写在课前 哆啦A梦我们都很熟悉 今天画个不一样的蓝胖子 和手抄报小姐姐一起开始吧 需要什么主题手抄报可以在下方评论中给小姐姐留言哦 据说高赞评论更容易获得更新哦 [ 手抄报元素:哆啦A梦] ...

  • 哆啦A梦系列像素画:六一儿童节,愿童心未泯,一切皆可甜

    520情人节刚走 六一儿童节又来了 没错 虽然我们过不成520 (也许只有我过不成吧 ) 但是我们可以过六一儿童节呀 孩子气不是没了,是现实生活压的无法展现 送大家一份有魔力的像素画 现在就把儿童时的 ...

  • 哆啦A梦作者早期未发布原画将首次公开

    海外网6月30日电 综合日本<神奈川新闻>等日媒消息,藤子·F·不二雄博物馆到今年9月将迎来开馆10周年纪念日.明日(7月1日)该馆将举办纪念10周年企划展,一批藤子·F·不二雄早期未发布 ...

  • 机器猫哆啦A梦简笔画头像画法

    愿天下没有难画的简笔画,  愿天下知识都能秒会 简笔画1.工具2.排线3.自动画画4.表情5.眼睛6.鼻子7.嘴8.发9.手10.身11.姿势12.衣服13.火柴人14.Q版人物15.十二生肖16.猫 ...

  • 爷青结!哆啦A梦50岁,静香终于嫁给大雄了,网友:但她真的会幸福吗...

    InsDaily-每日lns新資訊 5月将在内地上映的<哆啦A梦:伴我同行2>又发布了新的预告片. 在之前传出的剧照中,大家都感叹有生之年终于可以看到大雄和静香结婚了! 然而这次的预告片里 ...

  • 当哆啦A梦里的诸位角色变成中学生,大雄受欢迎,静香吃飞醋

    在<哆啦A梦>的故事里,因为时光机一类的道具存在,咱们看过小时候的大雄, 也知道他长大之后是啥样子,你像大雄坐时光机回去看望奶奶的那一集里,咱们就能看到小时候大雄,那时候的他虽然看着挺可爱 ...

  • 【霜叶音画】红楼梦人物欣赏/祝贺音画影音联合版块成立!

    霜叶红透 发表在单幅音画 华声论坛 http://bbs.voc.com.cn/forum-233-1.html分享到:微信QQ好友和群QQ空间新浪微博> [本帖最后由 兰蕙hn 于 2021- ...

  • 树屋信箱#8:写给哆啦A梦的信

    | 傍晚,茂密的白桦林湖边,袅袅炊烟升起.树屋主人路易先森在往门前树杈上挂油灯,小狗杰克懒懒地趴在树桩台阶上小憩,大橘猫凯丽正盯着旁边烧烤架上滋滋作响的烤羊肉,屋顶上的小山雀啄着它从小兔子卡瑞那里抢来 ...