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

闲话少说,言归正传。

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

图片发自简书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 画个图

    先放上最后的结果图(数据画的有点丑,随便看看就好了): 功能描述: 这个脚本主要的作用就是监视指定文件夹中(示例中在脚本所在文件夹下)指定文件这里就是csv文件中的数据做折线图:再将这一系列的图保存成 ...

  2. 简单python画圣诞树图片-python圣诞树代码

    python圣诞树代码 1.简单的绘制圣诞树 新建tree1.py或者直接输入下面代码运行#声明树的高度 height = 5 #树的雪花数,初始为1 stars = 1 #以数的高度作为循环次数 f ...

  3. 简单python画圣诞树图片-python圣诞树编写实例详解

    python圣诞树代码 1.简单的绘制圣诞树 新建tree1.py或者直接输入下面代码运行 #声明树的高度 height = 5 #树的雪花数,初始为1 stars = 1 #以数的高度作为循环次数 ...

  4. python制做简单图片代码_Python简单的制作图片验证码

    -人人可以学Python-- 这里示范的验证码都是简单的,你也可以把字符扭曲 人人可以学Python.png Python第三方库无比强大,PIL 是python的一个d第三方图片处理模块,我们也可以 ...

  5. python pandas csv时间聚合_pandas中简单统计分组聚合函数的介绍

    说明: 这里只是简单的说明了一些pandas中的一些我在毕设中使用到的函数,这个 模块的并未具体其他的一些功能并未详细的进行说明. pandas 简单介绍 Python语言的Pandas模块是一种高效 ...

  6. python 列表推导 为什么快_Python中简单的列表推导式,却能解决复杂的问题,你学会了吗?...

    Beautiful is better than ugly. ------Python之禅 01[引子] 我们知道,Python是一门简单.易学的编程语言,"Python之禅"里面 ...

  7. python字库转文字图片,Python输出汉字字库及将文字转换为图片

    用python输出汉字字库 问题1:假设我们知道汉字编码范围是0x4E00到0x9FA5,怎么从十六进制的编码转成人类可读的字呢? 问题2:怎么把unicode编码的字写入文件呢,如果直接用open( ...

  8. python画简单图片-Python绘制“高颜值”桑基图

    请看以下图片: 相信许多小伙伴第一眼就会被它美丽的外表所吸引,由此引发一连串的惊叹: "这个图叫什么???" "这个图真好看!!!怎么画啊?" 为了满足大家的好 ...

  9. python怎么画简单图片-Python绘制简易的二维图像

    大家好,我是飞向天空的牛. 最近学习了一下用Python绘制简易的二维图像,代码如下图所示:绘图代码 文本如下: import matplotlib.pyplot as plt import nump ...

最新文章

  1. R语言ggplot2可视化facet间隔设置语法实战
  2. 【Android Gradle 插件】Android Plugin DSL Reference 离线文档下载 ( GitHub 下载文档 | 查看文档 )
  3. 算法实验--主函数只有五行的Floyed的算法以及最短路径输出
  4. 使用vs2005遇到的两个错误!
  5. 使用JDBC获取Oracle连接时报错
  6. Angularjs 中的 controller
  7. 前端,我为什么不要你(转)
  8. 【渝粤教育】国家开放大学2018年春季 8636-21T实用心理学 参考试题
  9. 干掉 SQL 中的 like,我用 es 后运营小姐姐们都说好快!
  10. js 时间格式与时间戳的相互转换示例代码
  11. android 里程计算器,里程计算器
  12. 手机无线电驾驶与马歇尔·麦克卢汉的哲学
  13. 微信小程序UI组件库推荐
  14. PKI体系和数字证书
  15. 平差的理解及一种最简单的高斯马尔科夫模型(Gauss Markov Model)
  16. MTK6577+Android编译之android
  17. 程序媛们,女神节快乐~
  18. 云和恩墨 oracle 监控,产品速递 | 云和恩墨Bethune Pro2——数据库实时监控和智能巡检平台...
  19. 1. python爬虫
  20. 如何将数字123转化成大写的文字 一百二十三 或 一二三?

热门文章

  1. Luogu T24242 购物券Ⅰ(数据已加强)
  2. 1. 自然语言处理描述
  3. 2017辽宁冬令营-4.蚂蚁
  4. ETL工具箱 5提交维表
  5. asp.net mvc 3 RTM 发布了!
  6. bzoj 5339 [TJOI2018]教科书般的亵渎 拉格朗日插值
  7. 使用vscode调试Nodejs
  8. JAVA中用 SQL语句操作小结
  9. 动态规划入门 洛谷P1108 低价购买
  10. python——杂货铺