❶ 總結用python繪制正多邊形的規律
如果能夠找到規律,可以讓代碼變得更簡單。上述代碼中其實就是調用circle()函數四次,每次傳入參數不同而已。
我們可以加入循環,循環就是重復不停地做相同的事情;再找到循環變數和畫圓參數之間的規律即可。
第一個圓的半徑為50,每次按15的節奏遞減,直到繪制完半徑為5的圓。這樣就可以使用range()函數,傳入如下參數:range(50,0,-15)。
或者由小到大繪制,傳入這樣的參數也可以:range(5,51,15)。
還可以這樣:循環四次,循環變數i依次為0、1、2、3,再在繪制圓的過程中構造遞減的表達式:100/2-i*15。
分析這個表達式,當i等於0時,結果為50,繪制半徑為50的圓;當i等於1時,結果為35,繪制半徑為35的圓……正好符合題目要求的參數值。
【擴展】思考如何繪制以坐標原點為中心的同心圓呢?
仔細觀察畫筆繪制圓的軌跡,可發現:默認小海龜從坐標原點出發,逆時針旋轉一圈畫圓;然後,再回到起始點。
所以,繪制同心圓。我們需要將畫筆向下移動一定的距離,即改變y的坐標,x坐標保持不變為0。參考代碼如下:
循環體內,每次需要抬筆和落筆功能。
02
案例二:繪制一個正多邊形
繪制正多邊形有這樣一個結論:用360°去除以繪制的邊數,即可得到旋轉角度。
比如:正三角形的旋轉角度(360/3=120°)、正四邊形的旋轉角度(360/4=90°)、正八邊形的旋轉角度(360/8=45°)。其他以此類推。
那麼,我們要繪制一個正八邊形呢?
使用循環結構,循環八次。每次前移一定距離,再旋轉(360/邊數)的角度,這里旋轉的就是45°角。參考代碼如下:
有了這樣的結論,其他的正多邊形都可以信手拈來,小菜一碟了。只需要稍微改幾個參數即可。
03
案例三:繪制由多種顏色組成的正螺旋線
比如,這樣的圖形:
這是由八種顏色組成的正八邊形螺旋線結構圖,顏色依次為:紅(red)、綠(green)、藍(blue)、黃(yellow)、紫(purple)、橙(orange)、黑(black)、粉(pink)等八種。
繪制思路:
首先,需要創建一個顏色列表list,含有八種顏色元素。
第二,前移一定距離,這個距離值是由小到大逐級遞增的過程。
第三,旋轉一定角度,可參照案例二的結論。
最後,考慮畫筆的顏色,每8次(邊數)為一個周期循環顏色列表。
參考代碼如下:
其他的正螺旋線,也是如此規律。
【擴展】如果是有一定旋轉角度的螺旋線呢?比如,這樣的圖形:
解題思路:只需要在正螺旋線的基礎上,讓旋轉角度多偏移1-2°即可。修改上述案例中最後一行的代碼:
❷ python turtle畫4個同心圓方法
在Python中使用turtle庫繪制四個同心圓是一項有趣的任務。首先,我們導入turtle庫:
python
import turtle
畫筆的初始位置在原點(0,0),我們將以此為圓心。turtle畫圓時是從底部開始的,因此我們需要計算每個圓底部的坐標。對於第一個圓,半徑為200,底部坐標是(0,-200);第二個圓,半徑為150,底部坐標是(0,-150);第三個圓,半徑為100,底部坐標是(0,-100);最後,第四個圓,半徑為50,底部坐標是(0,-50)。
接下來,我們按照以下步驟繪制每個圓:
1. 抬起畫筆:turtle.penup()
2. 移動到相應坐標:turtle.goto(坐標)
3. 放下畫筆:turtle.pendown()
4. 畫圓:turtle.circle(半徑)
具體代碼如下:
python
import turtle
turtle.penup()
turtle.goto(0,-200)
turtle.pendown()
turtle.circle(200)
turtle.penup()
turtle.goto(0,-150)
turtle.pendown()
turtle.circle(150)
turtle.penup()
turtle.goto(0,-100)
turtle.pendown()
turtle.circle(100)
turtle.penup()
turtle.goto(0,-50)
turtle.pendown()
turtle.circle(50)
運行上述代碼後,你將看到四個同心圓依次繪制在屏幕上。這個簡單的項目不僅能夠幫助初學者熟悉turtle庫的基本用法,還能鍛煉編程思維和圖形繪制能力。
❸ python畫同心圓並填充顏色
用海龜畫圖,代碼如下:
import turtle
my_colors=('red','green','yellow','blue','black')
t=turtle.Pen()
for i in range(5):
t.penup()
t.goto(0,-i*10)
t.pendown()
t.color(my_colors[i%len(my_colors)])
t.circle(15+i*10)'''t.goto(0,0)
turtle.done()#程序執行完,窗口仍然在
❹ 如何用python畫一個同心圓,外環為紅色
#encoding:utf-8
#Python3.6.0
importturtle
foriinrange(1,3):
ifi==2:
turtle.pencolor("red")
turtle.pensize(10)
turtle.penup()
turtle.goto(0,-60*i)
turtle.pendown()
turtle.circle(60*i)
❺ python程序自己輸入半徑的九個同心圓程序
from turtle import *
# 設置窗體的大小和位置,參數依次為窗體的寬、高、相對於桌面起始點的橫坐標、縱坐標
setup(600,400,500,200)
color("red")# 畫筆顏色
pensize(2)# 畫筆寬度
for i in range(1,10):# for循環,用於繪制同心圓
penup()# 畫筆抬起(不會在窗體上留下痕跡)
goto(0,-10*i)# 移動畫筆到坐標(0,-10*i)
pendown()# 畫筆落下(開始在窗體上留下痕跡)
circle(20+i*10) # 在循環中不斷繪制半徑不同的圓
done()
❻ 如何用python畫同心圓並內接一個五角星
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
theta = np.linspace(0, 2* np.pi, 100)
r, R = 9, 10 # 小圓和大圓的半徑
# outter circle
X = R * np.cos(theta)
Y = R * np.sin(theta)
# innner circle
x = r * np.cos(theta)
y = r * np.sin(theta)
# pentagon vertices
p_theta = [np.pi/2 + np.pi*4/5 * i for i in range(6)] # 五角星的定點.
px = r * np.cos(p_theta)
py = r * np.sin(p_theta)
# plot
plt.plot(X, Y, label='Big Circle', color='blue')
plt.plot(x, y, label='Small Circle', color='green')
plt.plot(px, py, label='Pentagon', color='red')
plt.axis('equal')
plt.legend(loc='upper left')