在學python的turtle庫後,想到了乙個畫五角星的新思路。
*至少我還沒在網上看見過。下面讓我來給大家介紹介紹吧。
思路比較簡單,使turtle自己畫圓形,連續兩圈,在這兩圈中每過144°標記以下turtle所處的位置(呼叫pos方法),並將位置資訊儲存起來。最後用goto語句直接進行連線即可。下面看下實踐操作:
import turtle
turtle.pensize(1)
turtle.up(
)li=
# 畫圓形,標記位置
for i in
range(5
):turtle.circle(-40
,144
) turtle.pencolor(
"red"
) turtle.down(
) turtle.dot())
)# 畫五角星
turtle.goto(li[4]
)for i in
range(5
):turtle.goto(li[i]
)
效果圖:
將畫圓形和點的部分進行抬筆操作後,再進行填充,便可以得到五角星了。
import turtle
turtle.pensize(1)
turtle.up(
)li=
# 畫圓形,標記位置
for i in
range(5
):turtle.circle(-40
,144
) turtle.pencolor(
"red"
)# turtle.dot()))
# 畫五角星
turtle.fillcolor(
"red"
)turtle.begin_fill(
)turtle.down(
)turtle.goto(li[4]
)for i in
range(5
):turtle.goto(li[i]
)turtle.end_fill(
)
最終效果如下:
看到這裡,應該都明白了吧。至於為什麼這樣畫,主要是下面介紹稍大點的專案——畫五星紅旗,用我的這種方法思路比較清晰。效果圖如下:
#畫矩形,選擇的66*44比例的旗幟
turtle.begin_fill(
)turtle.up(
)turtle.goto(
-330,-
220)
turtle.down(
)for i in
range(2
): turtle.fd(
660)
turtle.left(90)
turtle.fd(
440)
turtle.left(90)
#此時海龜座標為-330,-220
turtle.end_fill(
)#分割二象限,用於除錯計算,提交時注釋掉
'''turtle.up()
turtle.goto(-330,0)
turtle.down()
turtle.fd(660)
turtle.speed(0)
turtle.up()
turtle.goto(0,220)
turtle.down()
turtle.seth(-90)
turtle.fd(440)
for i in range(10):
turtle.up()
turtle.goto(-330,22*i)
turtle.seth(0)
turtle.down()
turtle.fd(330)
for i in range(15):
turtle.up()
turtle.goto(-22*i,220)
turtle.seth(-90)
turtle.down()
turtle.fd(220)
turtle.up()
turtle.goto(-220,44)# 大五角星的中心的正下方
turtle.down()
turtle.seth(0)
turtle.circle(66)
'''#畫五角星
defdraw_star
(x,y,a,b,rank,radis)
: turtle.fillcolor(
"yellow"
)#填充顏色
turtle.pencolor(
"yellow"
)#畫筆顏色
turtle.up(
) pos_list=
#儲存五個點的座標的二維列表
turtle.goto(x,y)
turtle.seth(0)
if rank>0:
if(rank<3)
:#判斷是上面兩個星星還是下面兩個星星,因為轉的角度不同
rank=
2else
: rank=
3 f=
90*rank+math.degrees(math.atan(a/b)
)else
: f=0;
#print(f)
turtle.circle(
-radis,f)
for i in
range(5
):#迴圈5次,標記五個點
turtle.up(
) turtle.circle(
-radis,
144)
#turtle.down()
#turtle.dot()))
#print(small_pos_list)
turtle.up(
) turtle.goto(pos_list[4]
)#回到起點
turtle.begin_fill(
) turtle.down(
)for i in
range(5
):#開始畫五角星
turtle.goto(pos_list[i]
) turtle.end_fill(
)draw_star(
-220
,176,0
,0,0
,66)#畫大五角星,輸入起點座標,偏置角度0,0,規定大五角星編號為0,圓形半徑為66
draw_star(
-110
,198,5
,3,1
,22)# 第一顆星星 起點在左邊第5個格仔,上邊9個格仔,偏置角度的tan=5/3,編號為1,圓形半徑為22
draw_star(-66
,154,7
,1,2
,22)# 第二顆星星 起點在左邊第3個格仔,上邊7個格仔,偏置角度的tan=7/1,編號為2,圓形半徑為22
draw_star(-66
,88,2
,7,3
,22)# 第三顆星星 起點在左邊第3個格仔,上邊7個格仔,偏置角度的tan=2/7,編號為3,圓形半徑為22
draw_star(
-110,44
,4,5
,4,22
)# 第四顆星星 起點在左邊第5個格仔,上邊9個格仔,偏置角度的tan=4/5,編號為4,圓形半徑為22
注釋部分是畫格仔的**,用於除錯,大部分**都有注釋,所以不做過多解釋了。
使用Python的內建turtle庫畫彩虹
上圖是使用turtle庫繪製的彩虹。程式的關鍵點是將畫筆的顏色漸變,再通過不斷微小的角度轉換繪製成彩虹 計算機中的顏色空間模型是典型的rgb模型,r,g,b分別對應光的三原色,色相是由rgb三個引數共同決定的。那麼如果想通過乙個引數來改變色相,應該使用hsv顏色模型。hsv對於顏色空間的描述更貼近人...
python之turtle畫蚊香
原理 利用turtle繪製圓形,並使圓半徑逐步增加 如下 import turtle turtle.pensize 30 for i in range 30 turtle.circle i 10,60 turtle.done 下面對 解釋 1 import turtle 匯入turtle庫,turt...
使用Python的turtle模組畫國旗
python的turtle模組畫國旗主要用到兩個函式 draw rentangle和draw star。至於函式的呼叫就和我們學的c,c 是一樣的。對於turtle畫國旗的程式中,首先是查詢國旗的畫法,才能用程式實現。自己在實現的過程中主要是對turtle.circle 沒有準確掌握,所以花了一些不...