zoukankan      html  css  js  c++  java
  • 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()
        
  • 相关阅读:
    NO 3 ,人生苦短,我学python之python 元祖tuple魔法
    NO 2,人生苦短,我学python之python 列表list的魔法
    NO 1,人生苦短,我学python之python 字符串的魔法
    几种常见登录验证的方式总结
    Spring Boot 解决跨域问题的 3 种方案
    浅析VO、DTO、DO、PO的概念、区别和用处
    对于分库分表的入门理解
    在项目启动后执行某段功能代码
    jna编程学习
    RabbitMQ详解
  • 原文地址:https://www.cnblogs.com/bravestarrhu/p/8287334.html
Copyright © 2011-2022 走看看