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()
    
相關文章
相關標籤/搜索