python之demo2----改编自python官方提供的turtle_yinyang.py画阴阳的demo
"""
执行 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的更多相关文章
- 更好用的 Python 任务自动化工具:nox 官方教程
英文| nox tutorial 出处| nox 官方文档 译者| 豌豆花下猫@Python猫 Github地址:https://github.com/chinesehuazhou/nox_doc_c ...
- python grammar、C/C++ Python Parsing Engine
catalog . Python语言简介 . Python模块 . 嵌入式Python解析引擎: C++调用Python . Python 调用 C (base) . 扩展Python语法解析器功能: ...
- Python基础:四、python的优缺点
python是一门动态解释性的强类型语言 python的优点: 1. python的定位是"优雅"."明确"."简单" python程序看上 ...
- python 的排名,已经python的简单介绍
我在今天看了一篇文章,是简书的全网程序猿写的,Java已经退出神坛,python稳居第一. python是由龟叔写的,它在英文的意思是蟒蛇. 根据编程语言流行指数排行榜2019年2月的榜单 据了解,目 ...
- deno学习三 官方提供的方便deno 安装方式
早起deno 使用了golang 开发,同时需要protobuf 进行数据的序列化以及反序列化处理 当前的deno 已经使用rust 进行了开发,同时官方提供的安装方式也很方便了,不需要 那么复杂的编 ...
- Python 标准库一览(Python进阶学习)
转自:http://blog.csdn.net/jurbo/article/details/52334345 写这个的起因是,还是因为在做Python challenge的时候,有的时候想解决问题,连 ...
- Python接口测试实战2 - 使用Python发送请求
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
- 【Python】第一篇:python基础_1
本篇内容 Python介绍 安装 第一个程序(hello,world) 变量 用户输入(input) 数据类型 数据运算 if判断 break和continue的区别 while 循环 一. Pyth ...
- python高级(一)—— python数据模型(特殊方法)
本文主要内容 collections.namedtuple __getitem__ 和 __len__ __repr__和__str__ __abs__.__add__和__mul__ __bool_ ...
随机推荐
- How to check Logstash's pulse
Have you ever wondered if Logstash was sending data to your outputs? There's a brand new way to chec ...
- Golang 接口interface
接口interface 接口是一个或多个方法签名的集合 只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示声明实现了哪个接口,这成为Structural Typing 接口只有方法声明,没 ...
- 纯css竟可以做出边框这样长宽度的过渡效果
边框效果如下:鼠标移到下面方形,就有效果 要是没有效果,点这个:https://murenziwei.github.io/testGit/Untitled1.html 正如你所看到的,这边框颜色只 ...
- ABB机器人---PCSDK简介
BB机器人为用户提供了大量便捷的二次开发及应用工具,PCSDK就是其中一项. 1) 首先,机器人使用PCSDK,必须要有pc interface选项. 2)此处举例使用C#编写简单界面,实现与机器人数 ...
- Spring加载properties文件的两种方式
在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...
- LinkedBlockQueue生产消费源码解析
LinkedBlockQueue自JDK1.5以后提供的一种阻塞队列,遵循生产者消费者模式,实现了BlockQueue接口,如图 从它的名字可以了解到它是采用链表的方式实现了阻塞队列,并且定义了“节点 ...
- Expression<Func<T>>和Func<T>
以前用EF的时候,由于where的时候有Expression<Func<T>>和Func<T>两种查询条件,误用了Func<T>那个重载,后来还想通过f ...
- Java JDBC的基础知识(一)
一.为什么引入JDBC 在学习JDBC之前,抛开它的概念,我先按照我的理解解释一下,为什么要引入JDBC.在我看来,引入JDBC跟我之前学过的引入JVM(Java虚拟机)有些相似之处.当然,关于JVM ...
- Pupu(hdu3003)数论
Pupu Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- POJ3159(KB4-K 差分约束)
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 33283 Accepted: 9334 Descrip ...