前段时间疯传的武大学生用Python代码画出樱花,暗藏“武汉加油”,好感人的。

不过他们的代码并不是“画”樱花,而是剪辑一段樱花的视频,把其中的像素替换为“武汉加油”的字样。

今天我教你实实在在地用Python画画。

先看一个最简单又好玩的:五行代码画一个方形的螺旋线。画出来的图是这样的:

下面是简单的五行代码,你只要懂这几个英文单词,保管看得懂:turtle —— 小海龟,在沙滩上画画的小能手

length —— 长度,划线的长度

right —— 向右转!

forward —— 前进!

done —— 完成!

import turtle

for length in range(5,5*31,5): # 画30个线段,每个线段比前一个长度加5

turtle.right(90) # 右转90度

turtle.forward(length) #

turtle.done( )

怎么样,超级简单易懂吧?

Python就是这样好玩又简单。你要是学C语言的话,也许整本书教完了还没教你画图呢。

你可能会说这个图太简单了。想画实用漂亮一些的图?那画朵玫瑰怎么样啊?这个可能要手绘了。

代码比较长,一点一点画的,所以放后面附录了,这里直接看效果:Python手绘玫瑰效果演示https://www.zhihu.com/video/1233988975486377984

附录中的代码,虽然很长,但你完全能看懂每一句话。你可能会注意到,源代码全文主要也就是这样一句话在反复念叨:

turtle.circle(a, b)

这句话的意思就是:请海龟画圆弧,画半径为a、夹角为b那么大(如下图所示)。很自然好懂吧?玫瑰花的大部分线条,都是这样,用一段一段的弧线拼接起来的而已。

我们的自然学习法,就是这样子精选好玩的程序,让你在有趣的代码阅读中就完成学习的。

动手练习:把本文的两个程序分别复制到你的编程平台上(例如IDLE或Pycharm),运行无误。

按第一个程序的思想,画一个正六边形(提示:每次转60度)。

对第二个程序进行调整,画一朵黄玫瑰,并且让枝条细一点。

到此为止我们只画了玫瑰,还没画樱花。

原则上,用类似的方法(弧线拼接),你可以画任何你喜欢的花。但是这个每一步弧线大小的设定和调整是很麻烦的,而且跟手画一样,你必须要有艺术天分才能画好呢。

如果你有艺术底子,你就可以继续朝这个方向走,也许你能同样画出很好看的别的花花草草来,比如樱花 或圣诞树 。但下一篇我们将用美丽的数学方法来画樱花,也可以很艳丽的喔。

这里是《简单又好玩的Python》,欢迎关注。

(注:为了简单易懂,本文的代码在语法上不是最完美的,下一篇我们继续做其它画图示例时,将使用更严谨的语法。)

附:手绘玫瑰源代码

# https://blog.csdn.net/zaq0123/article/details/78573186

# 原作:QiZhao,完善:HenryJ

import turtle

# 设置初始位置

turtle.penup() # 抬笔(移动过程不画线)

turtle.left(90) # 左转90度

turtle.fd(200) # 前进200点(fd=forward)

turtle.pendown() # 落笔,准备画画

turtle.right(90) # 右转90度

# 花蕊

turtle.fillcolor("red") # 准备填充色为“红色”

turtle.begin_fill() # 开始填充封闭空间

turtle.circle(10, 180) # 画弧,半径10,180度角

turtle.circle(25, 110) # 画弧,半径25,110度角

turtle.left(50) # 左转50度

turtle.circle(60, 45) # 以下注释略

turtle.circle(20, 170)

turtle.right(24)

turtle.fd(30)

turtle.left(10)

turtle.circle(30, 110)

turtle.fd(20)

turtle.left(40)

turtle.circle(90, 70)

turtle.circle(30, 150)

turtle.right(30)

turtle.fd(15)

turtle.circle(80, 90)

turtle.left(15)

turtle.fd(45)

turtle.right(165)

turtle.fd(20)

turtle.left(155)

turtle.circle(150, 80)

turtle.left(50)

turtle.circle(150, 90)

turtle.end_fill()

# 花瓣1

turtle.left(150)

turtle.circle(-90, 70)

turtle.left(20)

turtle.circle(75, 105)

turtle.setheading(60)

turtle.circle(80, 98)

turtle.circle(-90, 40)

# 花瓣2

turtle.left(180)

turtle.circle(90, 40)

turtle.circle(-80, 98)

turtle.setheading(-83)

# 叶子1

turtle.pensize(2)

turtle.fd(30)

turtle.left(90)

turtle.fd(25)

turtle.left(45)

turtle.fillcolor("green")

turtle.begin_fill()

turtle.circle(-80, 90)

turtle.right(90)

turtle.circle(-80, 90)

turtle.end_fill()

turtle.right(135)

turtle.fd(60)

turtle.left(180)

turtle.fd(85)

turtle.left(90)

turtle.fd(80)

# 叶子2

turtle.right(90)

turtle.right(45)

turtle.fillcolor("green")

turtle.begin_fill()

turtle.circle(80, 90)

turtle.left(90)

turtle.circle(80, 90)

turtle.end_fill()

turtle.left(135)

turtle.fd(60)

turtle.left(180)

turtle.fd(60)

turtle.right(90)

turtle.circle(200, 60)

turtle.hideturtle()

turtle.done()

Python自然学习法全部源代码网址:

python樱花_用Python画樱花?想得美就能画得美(上)相关推荐

  1. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  2. python设计樱花_用Python画樱花?想得美就能画得美(上)

    前段时间疯传的武大学生用Python代码画出樱花,暗藏"武汉加油",好感人的. 不过他们的代码并不是"画"樱花,而是剪辑一段樱花的视频,把其中的像素替换为&qu ...

  3. 用python画动态樱花_利用python画一棵漂亮的樱花树,turtle画图代码大全,此处感谢知乎大佬小白...

    利用python画一棵漂亮的樱花树,turtle画图代码大全,此处感谢知乎大佬小白 此处感谢知乎大佬 小白练手 练习一下比较流行的turtle(海龟库) 画一棵漂亮的樱花树,效果如下: ps: 是动态 ...

  4. 绘制图形可以使用什么python数据库_使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例...

    今天为大家介绍几个Python"装逼"实例代码,python绘制樱花.玫瑰.圣诞树代码实例,主要使用了turtle库 Python绘制樱花代码实例 动态生成樱花 效果图(这个是动态 ...

  5. python忠告_学习Python一段时间,老司机给上路新手的3点忠告!

    在你学习编程的过程中,是否有过以下经历,或正在面临类似的局面:网上找了很多资料,不知道从哪里看起 买了本书,过了很久也没有看完第一章 开始还能跟着写几行代码,后来突然就看不懂了 也看了些教程和视频,似 ...

  6. python 字符识别_使用python进行光学字符识别入门

    python 字符识别 语言模型设计 (Language Model Designing) Optical Character Recognition is the conversion of 2-D ...

  7. 类的继承python事例_【Python五篇慢慢弹(5)】类的继承案例解析,python相关知识延伸...

    作者:白宁超 2016年10月10日22:36:57 摘要:继一文之后,笔者又将python官方文档认真学习下.官方给出的pythondoc入门资料包含了基本要点.本文是对文档常用核心要点进行梳理,简 ...

  8. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  9. python计算机_基础python计算机知识

    1.计算机基础知识 计算机基础 :组成---输入输出设备 储存器 CPU 内存 cpu 中央处理器 :处理各种数据的 内存 存储数据 硬盘 存储数据的 什么是操作系统:控制计算机的工作流程 软件 什么 ...

最新文章

  1. 微软小冰作词又作曲,网友:要出道的节奏吗?
  2. ArcGIS License Manager 更新
  3. 没有连接上aspnetdb.mdf数据库
  4. 通信网络安全分层及关键技术解决
  5. deepin中zz_如何解决R中的FizzBu​​zz问题
  6. java面试题:集合_Java:选择正确的集合
  7. 如何截获打印机文件_打印、复印还不会,如何在办公室里混?全程详细教学
  8. NeurIPS 2021 | 视频分类鲁棒性新基准
  9. 长短期记忆网络_科研成果快报第181期:改进的长短期记忆网络用于长江上游干支流径流预测...
  10. 施耐德SoMachine Basic中存在高危漏洞(CVE-2018-7783),可读取目标系统上的任意文件...
  11. 数据去重-----VBA字典法
  12. 图灵——如迷的解谜者
  13. 携程校招2017编程题之股票最大利润
  14. Linux:CPU频率调节模式以及降频方法简介
  15. 名帖148 行书《兰亭八柱帖》第六册:于敏中补戏鸿堂刻柳公权书兰亭诗阙笔册
  16. Python_FontTools使用
  17. 大数据破解污染图谱 北风与雾霾啥关系
  18. cmd启动MySQL
  19. python vba excel课程_【Python3+VBA】在Excel中生成小姐姐|python3教程|python入门|python教程...
  20. C#调用Delphi开发的DLL报内存写保护的错误信息

热门文章

  1. caffe ssd 优化
  2. 苹果手机的几个实用功能
  3. 最简单粗暴的C语言链表详解
  4. itext生成PDF,天坑
  5. android source code online
  6. textarea 手机端无法换行_处理textarea中的换行和空格
  7. 缓和曲线01——缓和曲线概论
  8. 很多人不会画衣服褶皱?那你因为你不了解这些!
  9. 美团偷偷表态了。。。
  10. 如何缩小计算机桌面图标,win10系统桌面图标太大如何缩小?桌面图标缩小的方法...