今天是我寫博客的第一天,我用python制作了滿天星~~~
以下附源碼
import turtle
import random
import time
# 設置畫筆大小,數值越小畫出的線條越細
turtle.pensize(1)
# 繪畫延遲,單位:毫秒,數值越小繪畫速度越快
turtle.delay(1)
# 隱藏畫筆
turtle.hideturtle()
# 設置畫布大小
turtle.setup(800, 800)
def star(x, y, left_angle, edge_len, color='yellow'):
"""
畫一個五角星
:param x: 起始x坐標
:param y: 起始y坐標
:param left_angle: 畫筆方向逆時針轉動度數
:param edge_len: 五角星邊的長度
:param color: 五角星顏色
:return:
"""
# 五角星邊的顏色
turtle.pencolor(color)
# 五角星內部填充色
turtle.fillcolor(color)
# 繪制速度,0代表最快,1-10:數字越大越快
turtle.speed(0)
turtle.pu() # 抬起畫筆
turtle.goto(x, y) # 移動到初始位置
turtle.pd() # 放下畫筆
turtle.begin_fill() # 開始填充圖形
# 畫筆方向以水平方向為基準
# 逆時針轉動 left_angle 度
turtle.left(left_angle)
# 循環繪制五角星的 5 條邊
for _ in range(5):
# 向畫筆方向移動edge_len像素長度
# 即:繪制五角星的一條邊
turtle.forward(edge_len)
# 畫筆方向順時針旋轉144度
# 由于五角星內角是36度,因此旋轉180-36=144度
turtle.right(144)
turtle.end_fill() # 填充完成
# 將畫筆方向恢復為水平方向,以免影響后續畫圖
turtle.left(-left_angle)
# 繪制滿天星
# 繪制 200 顆星星
for _ in range(200):
# 隨機生成起始坐標、畫筆方向和五角星邊長
rand_x = random.randint(-400, 400)
rand_y = random.randint(0, 400)
edge_len = random.randint(3, 8)
left_angle = random.randint(0, 180)
star(rand_x, rand_y, left_angle, edge_len, '#B7C5D2')
# 繪制五星紅旗
# 清空之前圖形
turtle.clear()
# 重新設置背景圖
turtle.bgpic('./red_bg.gif')
# 一次繪制國旗上的五顆星
star(-360, 320, 0, 80)
star(-260, 350, 40, 18)
star(-235, 330, 20, 18)
star(-235, 295, 0, 18)
star(-260, 270, -10, 18)
# 讓畫布停留
turtle.done()

浙公網安備 33010602011771號