为什么想画太极图呢?因为我儿子不知道是看了哪本书还是哪个电视,竟然特地打印出一张太极图要挂在大门口,我赶紧说祖宗这挂在门外,别人看见了还以为咱家出什么事了,你喜欢就挂自己卧室门口吧,于是这张图就成了他门口的一道摆设。既然这么喜欢,咱就把它画出来,岂不玩得更高级。

闲话少说,言归正传。

要画的太极图,如下图所示:

图片发自简书App

有点编程经验的都知道,这个图形是对称图形,因此可以用一个函数实现画一半,调用两次函数即可完成整个图形的绘制。

绘制图形采用Python中的turtle库函数来实现。想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

图片发自简书App

分解这个图形,图片中有红、黄、绿、蓝四种颜色的曲线,每条曲线上的箭头代表乌龟移动的方向。首先从中心开始画一个半圆(如红线所示),然后以红线所示圆的直径作为半径画一个半圆(如黄线所示),再画一个和红线所示圆的半径一样的半圆(如绿线所示),最后画一个小圆,半径为红线所示圆半径的0.15倍(如蓝线所示),之所以选择0.15倍,是因为这样嵌入红圆内的小圆直径和红圆直径接近黄金分割,看起来比较舒服。

代码及注释如下:

#引入turtle函数库

from turtle import *

#定义画半个太极图的函数,第一个参数radius是大圆的半径,

#color1,color2分别是两种填充颜色,对应图形中的黑白填充

def draw(radius, color1,color2):

#设置画笔粗细

width(3)

#设置画笔颜色和填充颜色

color("black",color1)

#准备开始填充图形

begin_fill()

#首先画一个半径为radius/2,弧度为180的半圆,画的是红线所示半圆

circle(radius/2,180)

#画一个半径为radius,弧度为180的半圆,画的是黄线所示半圆

circle(radius,180)

#将画笔方向旋转180度

left(180)

#画一个半径为radius/2,弧度为180的半圆,此时半径值为负,

#圆心在画笔的右边,画的是绿线所示半圆

circle(-radius/2,180)

#结束填充

end_fill()

#画笔向左旋转90度,正好指向画板上方

left(90)

#抬起画笔,再运动时不会留下痕迹

up()

#向前移动radius*0.35,这样小圆边线距离大圆边线上下各radius*0.35,

#小圆的半径就为radius*0.15

forward(radius*0.35)

#画笔向右旋转90度,指向画板右侧

right(90)

#放下画笔

down()

color(color2,color2)

#开始画内嵌小圆,如蓝线所示

begin_fill()

circle(radius*0.15)

end_fill()

#旋转画笔90度,指向画板上方

left(90)

up()

#后退radius*0.35

backward(radius*0.35)

down()

#旋转画笔90度,指向画板左方

left(90)

#定义主函数

def main():

#设置窗口或者画板大小

setup(500,500)

#绘制黑色一半,白色内圆

draw(200,"black","white")

#绘制白色一半,黑色内圆

draw(200,"white","black")

#隐藏画笔

ht()

main()

python画简便的图-python中简单易学的绘图:用turtle画太极图相关推荐

  1. 怎么用python画简单的图-python中简单易学的绘图:用turtle画太极图

    为什么想画太极图呢?因为我儿子不知道是看了哪本书还是哪个电视,竟然特地打印出一张太极图要挂在大门口,我赶紧说祖宗这挂在门外,别人看见了还以为咱家出什么事了,你喜欢就挂自己卧室门口吧,于是这张图就成了他 ...

  2. python怎么画简单图片-python中简单易学的绘图:用turtle画太极图

    为什么想画太极图呢?因为我儿子不知道是看了哪本书还是哪个电视,竟然特地打印出一张太极图要挂在大门口,我赶紧说祖宗这挂在门外,别人看见了还以为咱家出什么事了,你喜欢就挂自己卧室门口吧,于是这张图就成了他 ...

  3. python怎么画简单图-python中简单易学的绘图:用turtle画太极图

    为什么想画太极图呢?因为我儿子不知道是看了哪本书还是哪个电视,竟然特地打印出一张太极图要挂在大门口,我赶紧说祖宗这挂在门外,别人看见了还以为咱家出什么事了,你喜欢就挂自己卧室门口吧,于是这张图就成了他 ...

  4. python用turtle画月亮_python中简单易学的绘图:用turtle画太极图

    为什么想画太极图呢?因为我儿子不知道是看了哪本书还是哪个电视,竟然特地打印出一张太极图要挂在大门口,我赶紧说祖宗这挂在门外,别人看见了还以为咱家出什么事了,你喜欢就挂自己卧室门口吧,于是这张图就成了他 ...

  5. python简单绘图代码-python中简单易学的绘图:用turtle画太极图

    为什么想画太极图呢?因为我儿子不知道是看了哪本书还是哪个电视,竟然特地打印出一张太极图要挂在大门口,我赶紧说祖宗这挂在门外,别人看见了还以为咱家出什么事了,你喜欢就挂自己卧室门口吧,于是这张图就成了他 ...

  6. python画简便的图-python 实现在一张图中绘制一个小的子图方法

    有时候为了直观展现图的信息,可以在大图中添加小子图的方式进行数据分析,如下图所示: 具体的代码如下:该图连接了数据库,当然重要的不是数据展示,而是添加子图的方法. import matplotlib. ...

  7. python画简便的图-python如何画出漂亮的地图?

    推荐一个超好用的python包folium, 专门用于地理数据可视化,官方英文教程教程点击这里,查看本文源代码请点击这里. /> 使用方法很简单,操作如下:导入包,创建一副世界地图 import ...

  8. python画简便的图-python的pyecharts绘制各种图表详细(附代码)

    环境:pyecharts库,echarts-countries-pypkg,echarts-china-provinces-pypkg,echarts-china-cities-pypkg 数据:20 ...

  9. python画简便的图-python如何画出漂亮的地图?网友:教教我呗

    导入包,创建一副世界地图 不要错过 免费学习Python的机会,快来+688244617 import folium import pandas as pd # define the world ma ...

最新文章

  1. 理解GRUB2工作原理及配置选项与方法
  2. 剖析Jive的缓存机制
  3. 【Python基础】一文搞定pandas的数据合并
  4. 左神算法:用一个栈实现另一个栈的排序(Java版)
  5. C#连接池的详细分析(转)
  6. 改进粒子群优化算法(PURPSO)的MATLAB源程序
  7. 浙大版python_浙大版《Python 程序设计》题目集1-5
  8. 荣耀份额重回中国市场前三;​特斯拉使用替代芯片重写汽车软件;RabbitMQ 3.9.0 发布|极客日报...
  9. asp.net gridview 为什么只显示一行数据_为什么中位数(大多数时候)比平均值好
  10. 【随机过程】10 -高斯过程与布朗运动
  11. 草根的91助手和它的同类们
  12. 我国网络广告的现状及未来发展趋势分析
  13. cubase打开时,别的软件和网页无法正常播放视频。
  14. python微服务开发pdf_《微服务设计》中文完整版PDF电子书下载
  15. Win7下使用wubi.exe安装Ubuntu系统
  16. HTML5游戏开发案例教程
  17. c语言matlab混编max函数,Matlab与C++混编 – engin.h
  18. c# 采用XML的方式读取OSM文件
  19. (六) kityminder 协同编辑执行用例时,如果做到不相互干扰
  20. Vue中修改浏览器图标Logo

热门文章

  1. php fopen 清空文件内容,如何在c语言中清空文件里的内容?
  2. 如何搭建一个spring boot项目
  3. 11.2 正睿停课训练 Day15
  4. 一、TCL事务控制语言 二、MySQL中的约束 三、多表查询(重点) 四、用户的创建和授权 五、MySQL中的索引...
  5. SQLSERVER使用密码加密备份文件以防止未经授权还原数据库
  6. JAVA设计模式(08):结构化-飞锤(Flyweight)
  7. Android蓝牙A2dp profile的使用
  8. android 选择多选图片
  9. UVA344 UVALive5452 Roman Digititis【Ad Hoc】
  10. HDU2551 竹青遍野【数学计算+水题】