在python中利用海龜繪圖畫一個(gè)國旗?針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
畫之前肯定要知道規(guī)格圖,我找了一個(gè)大致的圖。
參考圖片:
繪制大星的方法很簡單,五角星的補(bǔ)角是144度。
繪制小五角星有點(diǎn)麻煩,因?yàn)槲覈鴩焐系男∥褰切遣⒉皇瞧椒诺模赖墼?jīng)這樣把我們的國旗搞錯過),而是總有一個(gè)角正對著大五角星的中心!我的方法是,定位到小五角星的中心點(diǎn),然后根據(jù)角度后退一定的長度。這個(gè)角度可以根據(jù)反勾股定理算出來(這有計(jì)算工具),長度我是按照大五角星的中心點(diǎn)到角尖的距離除以3得到的。
代碼:
from turtle import * screensize(2000,2000,'white')#設(shè)置畫布大小 #繪制旗面 pencolor('red') pu() goto(-300,-200) pd() fillcolor('red') begin_fill() for i in range(0,2): fd(600) lt(90) fd(400) lt(90) end_fill() #繪制大五角星 pu() pencolor('yellow') goto(-260,120) pd() fillcolor('yellow') begin_fill() for i in range(0,5): fd(120) rt(144) end_fill() #繪制四個(gè)小五角星 list1 = [(-100,160),(-60,120),(-60,60),(-100,20)]#四個(gè)五角星的中心坐標(biāo) list2 = [31.98,8.13,-15.59,-38.66]#相對角度0的后退1.111需要左轉(zhuǎn)的角度 for j in range(0,4): seth(0)#這是龜頭角度為0 pu() goto(list1[j])#定位到五角星中心 lt(list2[j])#旋轉(zhuǎn)角度,以背向指向大五角星的角尖 bk(1.111)#從五角星中心到指向大五角星的角尖(龜?shù)怪溃? lt(18)#五角星的半角角度 pd() fillcolor('yellow') begin_fill() for i in range(0, 5): fd(40) rt(144) end_fill() pu()#抬起龜頭 ht()#隱藏龜頭 done()#保持