"""
执行 python -m turtledemo 命令查看系统内置demo的源码 绘制:需要通过import turtle引入绘制图形库turtle库
改编自python提供的turtle_yinyang.py
author:bravestarr
date:12/7/2017
"""
import turtle # 定义大圆半径200,则小圆半径big_radius * 0.5, 假如内部最小圆半径为big_radius*0.15
big_radius = 200 def main():
turtle.reset()
turtle.shape("turtle")
yin("black", "white", 1)
yin("white", "black", -1)
turtle.ht() def yin(big_fillcolor, inner_fillcolor, direction):
"""
画一半阴阳八卦
:param big_fillcolor: 外部大圆填充色
:param inner_fillcolor: 内部小圆填充色
:param direction: 1表示开始默认开始方向向右,-1表示开始默认开始方向向左
:return:
"""
turtle.pensize(3)
# 设置pencolor和fillcolor
turtle.color("black", big_fillcolor)
# 开始填充
turtle.begin_fill()
# 画内半圆
turtle.circle(big_radius / 2.0, 180)
# 画外半圆
turtle.circle(big_radius, 180)
# 海龟箭头左转180度
turtle.lt(180)
# 反方向画内半圆,反方向画圆,半径前要加 -
turtle.circle(-big_radius / 2.0, 180)
# 结束填充
turtle.end_fill()
# 画笔抬起
turtle.pu()
# 从画笔当前位置开始画圆,因此需要减去内圆半径,y方向移动,x方向不变
turtle.sety(direction * big_radius * (0.5 - 0.15))
# 画笔放下
turtle.pd()
# 设置pencolor和fillcolor
turtle.color(big_fillcolor, inner_fillcolor)
# 开始填充内圆
turtle.begin_fill()
# 画内圆
turtle.circle(big_radius * 0.15)
# 结束填充内圆
turtle.end_fill()
# 画笔抬起
turtle.pu()
# 海龟箭头回到(0, 0)坐标
turtle.goto(0, 0)
# 画笔放下
turtle.pd()
# 海龟箭头左转180度
turtle.lt(180)
return "Done!" if __name__ == '__main__':
main()
turtle.mainloop()

python之demo2----改编自python官方提供的turtle_yinyang.py画阴阳的demo的更多相关文章

  1. 更好用的 Python 任务自动化工具:nox 官方教程

    英文| nox tutorial 出处| nox 官方文档 译者| 豌豆花下猫@Python猫 Github地址:https://github.com/chinesehuazhou/nox_doc_c ...

  2. python grammar、C/C++ Python Parsing Engine

    catalog . Python语言简介 . Python模块 . 嵌入式Python解析引擎: C++调用Python . Python 调用 C (base) . 扩展Python语法解析器功能: ...

  3. Python基础:四、python的优缺点

    python是一门动态解释性的强类型语言 python的优点: 1. python的定位是"优雅"."明确"."简单" python程序看上 ...

  4. python 的排名,已经python的简单介绍

    我在今天看了一篇文章,是简书的全网程序猿写的,Java已经退出神坛,python稳居第一. python是由龟叔写的,它在英文的意思是蟒蛇. 根据编程语言流行指数排行榜2019年2月的榜单 据了解,目 ...

  5. deno学习三 官方提供的方便deno 安装方式

    早起deno 使用了golang 开发,同时需要protobuf 进行数据的序列化以及反序列化处理 当前的deno 已经使用rust 进行了开发,同时官方提供的安装方式也很方便了,不需要 那么复杂的编 ...

  6. Python 标准库一览(Python进阶学习)

    转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连 ...

  7. Python接口测试实战2 - 使用Python发送请求

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  8. 【Python】第一篇:python基础_1

    本篇内容 Python介绍 安装 第一个程序(hello,world) 变量 用户输入(input) 数据类型 数据运算 if判断 break和continue的区别 while 循环 一. Pyth ...

  9. python高级(一)—— python数据模型(特殊方法)

    本文主要内容 collections.namedtuple __getitem__ 和 __len__ __repr__和__str__ __abs__.__add__和__mul__ __bool_ ...

随机推荐

  1. AJAX(Jquery)

    一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取得服务端当前时间 简单形式:jQuery对象.load(url) 返回结果自动添加到jQuery对象代表的 ...

  2. 误删centos的ps命令,恢复

    脑子短路将/bin/ps文件删除.发现ps命令无法用了.下面是恢复方法 1,执行rpm -qf /bin/ps 查看ps命令所需要的rpm包 [root@iZm5e727lmif5lZ ~]# rpm ...

  3. Android so 文件进阶<二> 从dlsym()源码看android 动态链接过程

    0x00  前言 这篇文章其实是我之前学习elf文件关于符号表的学习笔记,网上也有很多关于符号表的文章,怎么说呢,感觉像是在翻译elf文件格式的文档一样,千篇一律,因此把自己的学习笔记分享出来.dls ...

  4. (转)JAVA常见面试题之Forward和Redirect的区别

    阅读目录 一:间接请求转发(Redirect) 二:直接请求转发(Forward) 用户向服务器发送了一次HTTP请求,该请求可能会经过多个信息资源处理以后才返回给用户,各个信息资源使用请求转发机制相 ...

  5. Django models 的常用字段类型和字段参数

    <1> CharField #字符串字段, 用于较短的字符串. #CharField 要求必须有一个参数 maxlength, 用于从数据库层和Django校验层限制该字段所允许的最大字符 ...

  6. Git Windows客户端保存用户名和密码

    解决Git Windows客户端保存用户名和密码的方法,至于为什么,就不想说了. 1. 添加一个HOME环境变量,值为%USERPROFILE% 2. 开始菜单中,点击“运行”,输入“%Home%”并 ...

  7. Emergency(山东省第一届ACM程序设计真题+Floyd算法变型)

    题目描述 Kudo’s real name is not Kudo. Her name is Kudryavka Anatolyevna Strugatskia, and Kudo is only h ...

  8. 并发编程—— LinkedTransferQueue

    1. 前言 Java 中总的算起来有 8 种阻塞队列. 我们分析了: 并发编程之 SynchronousQueue 核心源码分析 并发编程之 ConcurrentLinkedQueue 源码剖析 并发 ...

  9. [转]Winform开发框架的重要特性总结

    本文转自:https://www.cnblogs.com/wuhuacong/p/3199829.html 从事Winform开发框架的研究和推广,也做了有几个年头了,从最初的项目雏形到目前各种重要特 ...

  10. ASP.NET MVC 的常用的HTML辅助方法笔记

    Html.BeginForm() 输出<form>标签Html.EndForm() 输出</form>标签Html.Label() 输出<label>标签Html. ...