学会编程的最大好处,是可以实现自己的想象力,下面打算讲讲怎样用Python来画画。

这次使用自顶向下的思路,来讲讲这幅《月夜星空》是怎样画的。

细节的分层实现

从内容来说,分为三步:第一步设定所用到的颜色,第二步画天,第三步画地。

画天又分为三步:画天空、画星星、画月亮。

画天空:就是一个天空颜色(color_sky)的矩形而已。

画星星:

就是100个位置随机,星星颜色(color_star)的小圆。

画月亮:

你想到月亮是怎么画的了么?先用月亮颜色(color_moon)画一个圆,然后在旁边叠加的地方,再用天空颜色画一个圆,于是就留下了一个月牙。

画地只有两步:画地面、画房子。

画地面:地面和天空都是简单的矩形,只是位置不同,颜色为地面颜色(color_ground)。

画房子:一个横排宽度600,每个房子的宽度是固定的60个像素,一共10个房子,而高度是随机的。对于一个具体的房子来说:

就是在一个相对深色(color_building)的矩形楼体上,整齐地用亮色(color_window)画若干的窗口而已。

组装

功能实现到这里,所有的绘画细节都完成了。我们看到,通过自顶向下的分析,每个局部的功能函数,都比较简短,没有一个超过10行。便于我们我们集中精力编写、测试。

最后,我们把它放到窗口中即可。

是不是也很简短呢?一幅艺术作品就完成了。

上面这幅画,从作图功能的角度来看其实只用到了两个基本作图功能:画矩形和画圆。

这里用的Tkinter,这是python自带的窗口编程库,功能还是比较简洁的。下次会介绍一个更加好用的第三方窗口编程库simpleGUI。

python画图星空_编程从绘画开始:用Python画一幅《月夜星空》图相关推荐

  1. python 基础代谢率计算器_编程 - 实现简单功能:Python

    1. 52周存钱挑战1 import math 2 import datetime 3  4  5 def save_money_in_n_weeks(money_per_week, increase ...

  2. Python灰帽子_黑客与逆向工程师的Python编程之道

    收藏自用 链接:Python灰帽子_黑客与逆向工程师的Python编程之道

  3. python绘制星空图、要求有圆月_编程从绘画开始:用Python画一幅《月夜星空》图...

    学会编程的最大好处,是可以实现自己的想象力,下面打算讲讲怎样用Python来画画. 这次使用自顶向下的思路,来讲讲这幅<月夜星空>是怎样画的. 细节的分层实现 从内容来说,分为三步:第一步 ...

  4. 在屏幕上输出你好的python语句是_编程实现:在屏幕上输出中文字符“你好,世界”。(输出结果中不带双引号)_学小易找答案...

    [填空题]借战死者诉说战争灾难的汉乐府诗是( ). [判断题]15 的倍数有 15 . 30 . 45 . ( ) [填空题]表现贫民意欲反抗的汉乐府诗是( ). [判断题]不可以在同一台计算机上安装 ...

  5. python画图模块_学习python画图模块plotnine:第一步安装

    官网链接 https://plotnine.readthedocs.io/en/stable/index.html 知乎介绍的文章 https://zhuanlan.zhihu.com/p/47814 ...

  6. 最简单的python语言程序设计_编程中最简单的语言Python,这样学或许更容易

    最近微信小程序上面出了一个跳一跳的小游戏 大家有没有玩呀? 编程中最简单的语言Python,这样学或许更容易 分享之前我还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Py ...

  7. python 面试问题_值得阅读的30个Python面试问题

    python 面试问题 Interview questions are quite tricky to predict. In most cases, even peoples with great ...

  8. python老师武_跟着廖雪峰老师学python (5)

    若想技术精进,当然得把基础知识打得牢牢的. 廖雪峰的官方网站  python3教程,该网站提供的教程浅显易懂,还附带了讲学视频,非常适合初学者正规入门. 以下是通过廖雪峰python官方网站学习的个人 ...

  9. python cookbook 豆瓣_备受好评的20本python图书,不用到处找了!

    闲来无事,用豆瓣API爬取了豆瓣上的Python图书,筛选了评分人数>80的书,按照评分高低排序,删除了些中英文版本重复的书,整理出了下面这张最受好评的20本Python图书榜单. No.1 F ...

  10. 怎么学python知乎_你们都是怎么学 Python 的?

    自学确实是比较难得,没有一个好的规划,好的学习路线图,你不会知道自己下一步该怎么办. 今天我就帮你来解决,分享2020年黑马程序员Python学习路线图,包含学习路线图,学习视频,学习工具,你都可以找 ...

最新文章

  1. OpenCV代码提取:遍历指定目录下指定文件的实现
  2. 构造函数中,成员变量一定要通过初始化列表来初始化的几种情况(转载)
  3. 阮一峰react demo代码研究的学习笔记 - ReactMount.render
  4. php注释验证,注解验证 · ThinkPHP6.0完全开发手册 · 看云
  5. because it is not a variable 编译错误解决方案
  6. C# 显式接口成员实现
  7. java中无法推断类型参数_Java中的推断异常
  8. CodeForces 696B Puzzles
  9. java map集合排序的_Java对Map集合进行排序
  10. mysql 5.6.30 编译_编译安装mysql 5.6.30
  11. python内置函数map_python内置函数 map/reduce
  12. Python No Module name cv2解决方案
  13. C#删掉了发给lua的对象造成lua实际的Obj无效,解决办法
  14. 网络安全实验四 防火墙技术的具体应用
  15. golang接口与反射剖析
  16. 为什么计算机打开u盘这么慢,电脑读取u盘文件速度慢
  17. NumPy 取消科学计数法:np.set_printoptions(suppress=True)
  18. 高德,微信公众号,企业微信获取定位
  19. 现在web前端主要做什么工作
  20. 扫描二维码启动微信打开特定页面

热门文章

  1. learun敏捷框架工作流:企业效率助推神器
  2. 基于MDK1808-EK_T70开发板的miniGUI应用程序演示03: ads1110热电偶温度传感器
  3. matlab 计算对数似然相似度
  4. 图论(graph)相关算法总结
  5. win10微信卡顿_电脑一分钟小技巧:win10微信电脑端多开方法
  6. 经济机器是怎样运行的(文字版)-瑞.达利欧
  7. 功能测试怎么做?常用功能测试方法总结
  8. switch比ifelse效率高
  9. win7局域网共享设置_win7局域网共享,教你在智能电视上看win7系统电脑资源
  10. Android 音频系统