「Python海龟画图」利用海龟画笔绘制镂空五角星
分析鏤空五角星邊長的關系
計算分析
分析五角星和內接正五邊形的邊長關系。已知五角星的邊長為l,求在同一直線上五角星的頂點到正五邊形的頂點的距離,即r的值;以及正五邊形的邊長x的值。如下圖所示:
??
已知正五邊形的頂角∠EBD=180°-360°/5=108°,五角星的頂角∠BCA=(180°-108°)/2=36°,∠AED=(360°-2×∠CED)/2=(360°-2×72°)/2=108°,∠DEB=(180°-108°)/2=36°,因此DE=r。
△BDE∽△BCA,因此有,得到,帶入,經過計算可以得出,。
繪制邊長l為400的五角星
功能要求
繪制邊長l為400的五角星,將畫筆顏色設置為yellow,填充顏色設置為red,畫筆寬度為3,畫筆速度最快,并隱藏畫筆。
實例代碼
import turtleturtle.speed(0)turtle.ht()l = 400 ????????????????????????????????????????# 設定五角星的邊長turtle.speed(0) ????????# 設置畫筆的速度turtle.ht() ????????????# 隱藏畫筆turtle.pensize(3) ??????# 設置畫筆的粗細# 設置畫筆的初始位置turtle.penup()turtle.goto(-200, 50)turtle.pendown()# 繪制外面的五角星turtle.color("yellow", "red")turtle.begin_fill()for i in range(5):turtle.forward(l)turtle.right(144)turtle.end_fill()turtle.done()運行結果
繪制邊長l為400的鏤空五角星
功能要求
繪制邊長l為400的五角星,將畫筆顏色設置為yellow,填充顏色設置為red;移動畫筆到正五邊形的頂點,即向前移動r距離,繪制一個邊長為x的正五邊形,設置畫筆顏色為yellow,填充顏色為white,即用白色正五邊形覆蓋五角星的中學部分,畫筆寬度為3,畫筆速度最快,并隱藏畫筆。
實例代碼
import turtleimport mathl = 400 ????????????????????????????????????????# 設定五角星的邊長r = l * 2 / (math.sqrt(5) + 3) ?????????????????# 計算兩個頂點的距離x = l * (math.sqrt(5) - 1) / (math.sqrt(5) + 3) # 計算五邊形的邊長turtle.speed(0) ????????# 設置畫筆的速度turtle.ht() ????????????# 隱藏畫筆turtle.pensize(3) ??????# 設置畫筆的粗細# 設置畫筆的初始位置turtle.penup()turtle.goto(-200, 50)turtle.pendown()# 繪制外面的五角星turtle.color("yellow", "red")turtle.begin_fill()for i in range(5):turtle.forward(l)turtle.right(144)turtle.end_fill()# 繪制正五角星turtle.penup()turtle.forward(r)turtle.pendown()turtle.color("yellow", "white")turtle.begin_fill()for i in range(5):turtle.forward(x)turtle.right(72)turtle.end_fill()turtle.done()運行結果
為鏤空五角星添加文字信息
功能要求
繪制邊長l為400的五角星,將畫筆顏色設置為yellow,填充顏色設置為red;移動畫筆到正五邊形的頂點,即向前移動r距離,繪制一個邊長為x的正五邊形,設置畫筆顏色為yellow,填充顏色為white,即用白色正五邊形覆蓋五角星的中學部分,畫筆寬度為3,畫筆速度最快,并隱藏畫筆。完成繪圖后,在圖中添加文字“鏤空五角星”
實例代碼
import turtleimport mathl = 400 ????????????????????????????????????????# 設定五角星的邊長r = l * 2 / (math.sqrt(5) + 3) ?????????????????# 計算兩個頂點的距離x = l * (math.sqrt(5) - 1) / (math.sqrt(5) + 3) # 計算五邊形的邊長turtle.speed(0) ????????# 設置畫筆的速度turtle.ht() ????????????# 隱藏畫筆turtle.pensize(3) ??????# 設置畫筆的粗細# 設置畫筆的初始位置turtle.penup()turtle.goto(-200, 50)turtle.pendown()# 繪制外面的五角星turtle.color("yellow", "red")turtle.begin_fill()for i in range(5):turtle.forward(l)turtle.right(144)turtle.end_fill()# 繪制正五角星turtle.penup()turtle.forward(r)turtle.pendown()turtle.color("yellow", "white")turtle.begin_fill()for i in range(5):turtle.forward(x)turtle.right(72)turtle.end_fill()# 在圖中添加文字信息turtle.penup()turtle.goto(-150, -50)turtle.color("violet")turtle.write("鏤空五角星", font=('微軟雅黑', 48, 'bold'))turtle.done()運行結果
?
?
總結
以上是生活随笔為你收集整理的「Python海龟画图」利用海龟画笔绘制镂空五角星的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 厦门vr虚拟现实,工地安全教育VR体验,
- 下一篇: 用Python解决海量数据的分类汇总~一