如何用Python的turtle庫繪制一個由星號組成的正方形?

如何用Python的turtle庫繪制一個由星號組成的正方形?

使用python的turtle庫繪制星號正方形并非直接設置畫筆形狀為星號那么簡單。 turtle庫主要用于繪制線條和形狀,而非文本字符。要實現用星號(*)繪制正方形,需要借助turtle.write()函數。

本文介紹一種方法,利用turtle.write()函數在指定位置寫入星號,模擬繪制星號正方形。

以下代碼實現了一個make_square函數,該函數接收正方形的左下角和右上角坐標以及星號大小作為參數,通過循環在正方形邊上寫入星號字符:

import turtle  turtle.shape('classic')  # 使用經典的箭頭形狀 turtle.speed(10)       # 設置繪制速度 turtle.penup()         # 抬起畫筆,避免繪制多余線條 turtle.setpos(0, 0)    # 設置起始位置   def make_square(left_bottom, right_top, size=10):     """     使用星號繪制正方形。      Args:         left_bottom: 正方形左下角坐標 (x, y)。         right_top: 正方形右上角坐標 (x, y)。         size: 星號字體大小。     """     x1, y1 = left_bottom     x2, y2 = right_top      if x1 > x2 or y1 > y2:         raise ValueError("坐標參數錯誤: 左下角坐標必須小于右上角坐標。")      # 繪制底部邊     for x in range(x1, x2 + 1):         turtle.goto(x, y1)         turtle.write("*", font=("Arial", size, "normal"))      # 繪制右側邊     for y in range(y1 + 1, y2 + 1):         turtle.goto(x2, y)         turtle.write("*", font=("Arial", size, "normal"))      # 繪制頂部邊     for x in range(x2 -1, x1 - 1, -1):         turtle.goto(x, y2)         turtle.write("*", font=("Arial", size, "normal"))      # 繪制左側邊     for y in range(y2 - 1, y1, -1):         turtle.goto(x1, y)         turtle.write("*", font=("Arial", size, "normal"))   # 示例用法:繪制一個邊長為50像素的正方形 make_square((-50, -50), (50, 50), 10)  # size=10 表示星號字體大小為10  turtle.done()

這段代碼更清晰地展示了函數功能,并加入了對輸入坐標的有效性檢查,避免了潛在的錯誤。 turtle.write(“*”, font=(“Arial”, size, “normal”)) 語句中的 font 參數控制星號的大小和字體。 記得在代碼執行結束后調用 turtle.done() 來保持窗口顯示。

立即學習Python免費學習筆記(深入)”;

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享