""" 執行 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()