前段时间疯传的武大学生用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制作迷宫GIF

    安装 可以通过PyPi安装 或者通过Git 为什么你需要这个库? 问:我是一个Python迷,并且对迷宫的生成和迷宫解决的办法非常感兴趣.我很羡慕别人能够做出生成迷宫的动画.我如何能够用Python自 ...

  2. python 时间序列预测_使用Python进行动手时间序列预测

    python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...

  3. python 概率分布模型_使用python的概率模型进行公司估值

    python 概率分布模型 Note from Towards Data Science's editors: While we allow independent authors to publis ...

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

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

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

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

  6. python樱花树的设计思路_用python绘制樱花树

    黑夜可能漫长,但总会迎来温暖的阳光,三月如期而至,武大的樱花又一次盛开.那么今天就一起来看看怎样在python中画一棵美丽的樱花树- 说到用python画画,那当然就是小乌龟Turtle库了,为啥是t ...

  7. python绘制月亮_用python画月亮的代码是什么?

    用python画月亮的代码是什么? 用python画月亮的代码是import turtle as t t.screensize(800,600,"#483d8b")#画布尺寸和颜色 ...

  8. python管理系统设计_基于Python和Django框架的物联网智能设备管理系统的设计与实现

    杨武帅 万启元 桑贤伯 摘 要:针对目前日益增多的智能设备提出了兼容性好,稳定性高,易于管理的管理系统的设计方法.在服务器端使用Python和Django框架进行与设备的数据交互及设备管理网站的构架, ...

  9. 机械专业与python的联系_使用python进行机械设计计算

    分析 这一过程的核心在于机械设计,python的编程的用途有两个 1.当作计算器,缺点在于没有casio计算器那样的自然显示,优点在于可以反复调用,使用lambda函数简化运算 2.当设计需要修改时, ...

最新文章

  1. Know about RDBMS market share
  2. 初学者编写python用什么软件好_初学者编写python用什么软件
  3. perl mysql 数据推拉_Perl操作Mysql数据库
  4. Win7 配置Android开发环境
  5. 张衡的地震仪不起作用的原因
  6. NYOJ 801 Haffman编码
  7. 10.13 nc:多功能网络工具
  8. c#自定义事件的使用方法
  9. linux日志搜索关键词_linux中的实用技巧和快捷键总结
  10. ubuntu下面如何切换virtual_box的鼠标
  11. C++ 3D物理引擎库BulletPhysics基本使用
  12. 《DSP using MATLAB》Problem 6.6
  13. L1-055 谁是赢家-PAT团体程序设计天梯赛GPLT
  14. you don't have permission to access forbidden
  15. oracle压缩子分压,混合列压缩(HCC)在OLAP及OLTP场景中的测试
  16. 宝塔面板反向代理怎么设置
  17. tf.keras计算FLOPs
  18. 使用navicat进行库表数据拷贝
  19. Redis过期策略 实现原理
  20. 奥特曼系列ot中怎么选择服务器,《奥特曼系列OL》新手攻略(另外一篇)

热门文章

  1. 阿里云ECS服务器安装docker教程(超详细图文教程)
  2. 《数据结构》实验报告六:图的表示与遍历
  3. 细说马斯洛需求层次理论与产品的关系——老吴说产品
  4. EXCEL常规搜索命令
  5. android ble发现的服务,通过蓝牙低功耗无法发现服务和特性 - BLE
  6. python——面向对象的三大特性:封装,继承,多态
  7. Rmarkdown的PDF文件插入本地图片
  8. oracle中备份表的创建,ORACLE DB创建步骤-运用冷备份和RMAN
  9. 小程序运营要善于做好活动推送
  10. 2018有赞校招笔试题