使用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