用程式碼過中秋,python海龜月餅你要不要嘗一口?

專注的阿熊發表於2022-09-16

import turtle

t = turtle.Pen()  # 畫筆一 用於畫圖

t.speed(0)

# 花紋顏色 #F29407

# 餅身顏色 #F8B41A

# 畫 餅身部分

def outfill_flower(flower_num: " 花瓣數量 ", flower_color: " 花瓣顏色 "):

     for i in range(flower_num):

         t.left(i * (360 // flower_num))

         t.color(flower_color)

         t.penup()

         t.forward(200)

         t.pendown()

         t.fillcolor(flower_color)

         t.begin_fill()

         t.circle(60)

         t.end_fill()

         t.penup()

         t.home()

# 畫 餅身外圍 花紋部分

def out_line_flower(flower_num: " 花紋數量 ", flower_color: " 花紋顏色 "):

     for i in range(flower_num):

         t.pensize(5)

         t.left(i * (360 // 18))

         t.color(flower_color)

         t.penup()

         t.forward(192)

         t.pendown()

         t.circle(60)

         t.penup()

         t.home()

# 畫內測的大圓 大圓的填充色比餅身略亮

def big_circle(circle_color: " 大圓顏色 ", circle_fill_color: " 大圓填充顏色 ", circle_size: " 大圓半徑 "):

     t.goto(circle_size, 0)

     t.left(90)

     t.pendown()

     t.pensize(8)

     t.color(circle_color)

     t.fillcolor(circle_fill_color)

     t.begin_fill()

     t.circle(circle_size)

     t.end_fill()

     t.penup()

     t.home()

# 餅上印花文字 文字內容和座標用字典儲存

def write_font(text_content: " 文字內容 ", text_color: " 文字顏色 ", size: " 文字大小 "):

     t.color(text_color)

     for x in text_content:

         t.penup()

         t.goto(text_content[x])

         t.write(x,, font=('simhei', size, 'bold'))

     t.penup()

     t.home()

     t.color('#F29407')

# 餅身中間矩形條紋部分

def body_center_line(width: " 矩形寬度 ", height: " 矩形高度 "):

     t.penup()

     t.home()

     t.pensize(4)

     t.pendown()

     t.backward(width / 2)

     t.forward(width)

     t.left(90)

     t.forward(height)

     t.left(90)

     t.forward(width)

     t.left(90)

     t.forward(height * 2)

     t.left(90)

     t.forward(width)

     t.left(90)

     t.forward(height)

     t.penup()

     t.home()

# 矩形條紋兩側的四個花紋 畫筆軌跡是一樣的 所以只需要傳入不同的初始位置和角度即可複用程式碼

def center_flower(start_point: " 落筆位置 ", start_angle: " 落筆朝向 ", angle_direction_change: " 新朝向 ",

                   rectangle_height: " 矩形高度 ", circle_direction: " 花紋弧度 "):

     t.penup()

     t.goto(start_point)

     t.pendown()

     t.setheading(start_angle)

     t.forward(10)

     t.setheading(angle_direction_change)

     t.forward(20)

     t.backward(rectangle_height * 2)

     t.forward(rectangle_height * 2)

     t.setheading(start_angle)

     t.circle(circle_direction * 70, 90)

     t.setheading(start_angle + 180)

     t.forward(60)

     t.setheading(angle_direction_change)

     t.forward(30)

     t.penup()

     t.home()

# 餅身上下左右的花紋

def out_flower(begin_x: " 落筆橫座標 ", begin_y: " 落筆縱座標 ", start_angle: " 落筆朝向 "):

     t.penup()

     t.goto(begin_x, begin_y)

     t.pendown()

     t.setheading(start_angle)

     t.forward(20)

     t.right(90)

     t.circle(-100, 20)

     t.penup()

     t.goto(begin_x, begin_y)

     t.pendown()

     t.setheading(start_angle)

     t.right(90)

     t.circle(-100, 30)

     t.left(90)

     t.forward(45)

     t.left(95)

     t.circle(190, 50)

     t.left(95)

     t.forward(45)

     t.left(90)

     t.circle(-100, 31)

     t.setheading(start_angle)

     t.forward(20)

     t.left(90)

     t.circle(100, 20)

     t.penup()

     t.home()

# 以下程式碼開始呼叫各種功能

if __name__ == "__main__":

# 設定畫布名稱

     t.screen.title(' 中秋快樂 ')

     # 畫 餅身部分

     outfill_flower(18, '#F8B41A')

     # 畫 餅身外圍 花紋部分

     out_line_flower(18, '#F29407')

     # 畫內測的大圓 大圓的填充色比餅身略亮

     # big_circle('#F29407','#F8B41A',200)

     big_circle('#F29407', '#F8B51D', 200)

     # 餅上印花文字 文字內容和座標用字典儲存

     text_content =跟單網gendan5.com {' ': (-100, 70), ' ': (100, 70), ' ': (100, -120), ' ': (-98, -125)}  # 圓字座標最後向下微調了一下

     # write_font(text_content,'#F29407',40)

     write_font(text_content, '#FC932B', 40)

     # 餅身中間矩形條紋部分

     body_center_line(12, 80)

     # 矩形條紋兩側的四個花紋

     center_flower((6, 60), 0, 90, 80, -1)

     center_flower((6, -60), 0, -90, 80, 1)

     center_flower((-6, 60), 180, 90, 80, 1)

     center_flower((-6, -60), 180, -90, 80, -1)

     # 餅身上下左右的花紋

     out_flower(6, 110, 90)

     out_flower(-110, 6, 180)

     out_flower(-6, -110, 270)

     out_flower(110, -6, 360)

     # 可以再加點字

     # text_content2 = {' ': (-50, 30), ' ': (50, 30), ' ': (50, -60), ' ': (-50, -60)}  # 圓字座標最後向下微調了一下

     # write_font(text_content2, '#F29407',30)

     # 隱藏畫筆

     t.hideturtle()

     # 保持畫布顯示

     turtle.done()


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2914961/,如需轉載,請註明出處,否則將追究法律責任。

相關文章