在Python中,使用turtle模塊可以很方便地繪制各種圖形,包括同心圓。函數(shù)內(nèi)部,使用了一個(gè)循環(huán)來(lái)繪制每個(gè)同心圓,每次循環(huán)都調(diào)用circle方法來(lái)繪制一個(gè)圓,然后抬起筆移動(dòng)到下一個(gè)圓的中心位置。下面是一個(gè)示例代碼,展示了如何使用turtle模塊來(lái)繪制同心圓。
如何用python的turtle畫(huà)同心圓?
方法一:固定半徑間隔的同心圓
pythonimport turtle# 初始化畫(huà)布和畫(huà)筆screen = turtle.Screen()pen = turtle.Turtle()pen.speed(5) # 設(shè)置繪制速度(1-10)# 繪制5個(gè)同心圓,半徑間隔30for radius in range(30, 180, 30): # 從30開(kāi)始,步長(zhǎng)30,到180結(jié)束pen.penup()pen.goto(0, -radius) # 移動(dòng)到當(dāng)前圓的起始點(diǎn)(圓心正下方)pen.pendown()pen.circle(radius) # 繪制圓# 結(jié)束繪制pen.hideturtle()screen.mainloop()

方法二:自定義圓心位置和顏色
pythonimport turtledef draw_concentric_circles(x, y, colors, radii):"""在指定坐標(biāo)繪制多個(gè)同心圓Args:x, y: 圓心坐標(biāo)colors: 每個(gè)圓的顏色列表radii: 每個(gè)圓的半徑列表"""pen = turtle.Turtle()pen.speed(0) # 最快速度f(wàn)or color, radius in zip(colors, radii):pen.penup()pen.goto(x, y - radius) # 移動(dòng)到起始點(diǎn)pen.pendown()pen.color(color)pen.circle(radius)pen.hideturtle()# 設(shè)置畫(huà)布screen = turtle.Screen()screen.bgcolor("white")# 調(diào)用函數(shù)(圓心在(0,0),顏色為紅綠藍(lán),半徑50/100/150)draw_concentric_circles(0, 0, ["red", "green", "blue"], [50, 100, 150])screen.mainloop()
關(guān)鍵點(diǎn)說(shuō)明:
坐標(biāo)控制:goto(x, y-radius)將畫(huà)筆移動(dòng)到圓的最下方作為起始點(diǎn),確保圓心對(duì)齊
循環(huán)繪制:通過(guò)循環(huán)動(dòng)態(tài)調(diào)整半徑,輕松實(shí)現(xiàn)多個(gè)同心圓
樣式自定義:可自由設(shè)置顏色、線寬(pen.width())、填充(begin_fill()/end_fill())
性能優(yōu)化:speed(0)為最快繪制速度,適合批量繪制
擴(kuò)展建議:
添加動(dòng)畫(huà)效果:在循環(huán)中加入time.sleep()實(shí)現(xiàn)逐個(gè)顯示
交互式輸入:用input()讓用戶(hù)輸入圓心坐標(biāo)和半徑參數(shù)
藝術(shù)創(chuàng)作:結(jié)合隨機(jī)模塊生成隨機(jī)顏色和位置的圓形圖案
這兩種方法分別展示了基礎(chǔ)實(shí)現(xiàn)和函數(shù)封裝的高級(jí)用法,可根據(jù)需求選擇使用。使用Python的turtle模塊繪制同心圓,核心是通過(guò)循環(huán)控制半徑和畫(huà)筆位置。首先導(dǎo)入模塊并創(chuàng)建畫(huà)布,然后設(shè)置畫(huà)筆速度。關(guān)鍵步驟是:用penup()抬起畫(huà)筆避免移動(dòng)時(shí)劃線,通過(guò)goto將畫(huà)筆定位到當(dāng)前圓的起始點(diǎn),再用pendown()和circle(radius)繪制圓。循環(huán)調(diào)整半徑值即可繪制多個(gè)同心圓。