中文字幕精品无码一区二区,成全视频在线播放观看方法,大伊人青草狠狠久久,亚洲一区影音先锋色资源

小學(xué)Python系列少兒編程課程《第6章 會(huì)畫(huà)畫(huà)的“小海龜”》課件(共37張PPT)

資源下載
  1. 二一教育資源

小學(xué)Python系列少兒編程課程《第6章 會(huì)畫(huà)畫(huà)的“小海龜”》課件(共37張PPT)

資源簡(jiǎn)介

(共37張PPT)
Python少兒編程
第六章 會(huì)畫(huà)畫(huà)的“小海龜”
目錄
1.1
“小海龜”的自我介紹
1.2
“小海龜”的畫(huà)布
1.3
“小海龜”的畫(huà)筆
1.4
多彩的圖畫(huà)
PART 01
“小海龜”的自我介紹
“小海龜”的自我介紹
1
turtle圖形庫(kù)源于1967年誕生的Logo語(yǔ)言,是Python有趣的繪圖工具。turtle庫(kù)因其簡(jiǎn)單便捷的圖形化方法和立即反饋式的繪畫(huà)效果,大大增強(qiáng)了編程的趣味性,也因此成為Python編程初學(xué)者的首選。
turtle庫(kù)的使用原理其實(shí)很簡(jiǎn)單,我們可以把它想象成一只在沙灘上爬行的小海龜,在它的身后會(huì)留下深深的軌跡,沙灘就是畫(huà)布,軌跡就是圖形。在計(jì)算機(jī)中,可以把窗口看作畫(huà)布,程序就是指揮員,控制小海龜在窗口上移動(dòng),經(jīng)過(guò)的軌跡就是圖形。
利用turtle庫(kù),可以繪制各種簡(jiǎn)單到復(fù)雜的圖形,如圖6-1所示。
圖6-1 利用turtle庫(kù)繪制的圖形
“小海龜”的自我介紹
1
就是標(biāo)準(zhǔn)坐標(biāo)系,即以繪圖界面的中心點(diǎn)為坐標(biāo)原點(diǎn)(0,0),以x坐標(biāo)正方向?yàn)?度角,逆時(shí)針旋轉(zhuǎn)。turtle庫(kù)中默認(rèn)使用standard模式。
(1)standard模式
(2)logo模式
(3)world模式
是以繪圖界面的中心點(diǎn)為坐標(biāo)原點(diǎn)(0,0),以y坐標(biāo)正方向?yàn)?度角,順時(shí)針旋轉(zhuǎn)。
使用用戶自定義的“世界坐標(biāo)系”。
turtle庫(kù)的坐標(biāo)和角度系統(tǒng)
PART 02
“小海龜”的畫(huà)布
“小海龜”的畫(huà)布
2
導(dǎo)入turtle庫(kù)后直接運(yùn)行程序,會(huì)默認(rèn)創(chuàng)建一個(gè)空白窗口,其繪圖區(qū)域(即畫(huà)布)使用直角坐標(biāo)系(x坐標(biāo)和y坐標(biāo))描述位置,原點(diǎn)在中心。turtle庫(kù)提供了多種函數(shù)用于設(shè)置窗口,如表6-1所示。
表6-1 turtle庫(kù)提供的用于設(shè)置窗口的函數(shù)
“小海龜”的畫(huà)布
2
【例6-1】 設(shè)置窗口的背景顏色和圖片。
【參考代碼】
import turtle #導(dǎo)入turtle庫(kù)
turtle.setup(500, 500) #設(shè)置窗口大小
turtle.bgcolor('Green') #設(shè)置窗口背景顏色
turtle.bgpic('蝴蝶.gif') #設(shè)置背景圖片
turtle.done() #完成
“小海龜”的畫(huà)布
2
【運(yùn)行結(jié)果】 程序運(yùn)行結(jié)果如圖6-2所示。
圖6-2 例6-1程序運(yùn)行結(jié)果
【程序說(shuō)明】 使用turtle庫(kù)繪制圖形時(shí),程序最后須使用done()函數(shù)使程序暫停,停止畫(huà)筆繪制,但不關(guān)閉繪圖窗口。
PART 03
“小海龜”的畫(huà)筆
移動(dòng)畫(huà)筆
3.1
turtle庫(kù)提供了多種函數(shù)用于移動(dòng)畫(huà)筆,使其在畫(huà)布上繪制圖形,常用的函數(shù)如表6-2所示。
表6-2 turtle庫(kù)提供的用于移動(dòng)畫(huà)筆常用的函數(shù)
移動(dòng)畫(huà)筆
3.1
表6-2 turtle庫(kù)提供的用于移動(dòng)畫(huà)筆常用的函數(shù)(續(xù))
移動(dòng)畫(huà)筆
3.1
表6-2 turtle庫(kù)提供的用于移動(dòng)畫(huà)筆常用的函數(shù)(續(xù))
移動(dòng)畫(huà)筆
3.1
【例6-2】 繪制五角星。
【問(wèn)題分析】 創(chuàng)建變量distance表示五角星的邊長(zhǎng),然后循環(huán)5次繪制邊。循環(huán)中使用forward()函數(shù)前進(jìn)distance,然后使用right()函數(shù)右轉(zhuǎn)144度。其中,144度為五角星的外角角度,其計(jì)算方法為180 180/5,180/5為五角星的內(nèi)角角度。
【參考代碼】
import turtle #導(dǎo)入turtle庫(kù)
turtle.shape('turtle') #設(shè)置為海龜形狀
distance = 200 #設(shè)置前進(jìn)距離
for i in range(5): #循環(huán)5次
turtle.forward(distance) #前進(jìn)distance
turtle.right(144) #右轉(zhuǎn)144度
turtle.done() #完成
移動(dòng)畫(huà)筆
3.1
【運(yùn)行結(jié)果】 程序運(yùn)行結(jié)果如圖6-3所示。
圖6-3 例6-2程序運(yùn)行結(jié)果
【程序說(shuō)明】 此案例中可使用多種函數(shù)移動(dòng)畫(huà)筆,改變朝向時(shí)也可左轉(zhuǎn),只是繪制的五角星的方向不同。
控制畫(huà)筆
3.2
繪制圖形時(shí),有時(shí)需要移動(dòng)畫(huà)筆,但不想留下軌跡,此時(shí)可以通過(guò)控制畫(huà)筆的抬起和落下來(lái)實(shí)現(xiàn)。此外,還可以設(shè)置畫(huà)筆的顏色和粗細(xì),turtle庫(kù)中常用的控制畫(huà)筆的函數(shù)如表6-3所示。
表6-3 turtle庫(kù)中常用的控制畫(huà)筆的函數(shù)
控制畫(huà)筆
3.2
【例6-3】 繪制一條逐漸變粗的紅色虛線。
【問(wèn)題分析】 虛線由多段短的空白和短線組成,可以使用循環(huán)實(shí)現(xiàn)。在循環(huán)中,使用pensize()函數(shù)的返回值加0.2設(shè)置下一次短線的粗細(xì),然后畫(huà)筆放下,繪制長(zhǎng)度為5的短線后畫(huà)筆抬起,畫(huà)筆前進(jìn)5,完成一次繪制。
【參考代碼】
import turtle #導(dǎo)入turtle庫(kù)
turtle.shape('turtle') #設(shè)置為海龜形狀
turtle.pencolor('Red') #設(shè)置畫(huà)筆顏色為紅色
控制畫(huà)筆
3.2
【參考代碼】(續(xù))
for i in range(20): #循環(huán)20次
turtle.pensize(turtle.pensize() + 0.2) #設(shè)置畫(huà)筆粗細(xì)
turtle.pendown() #畫(huà)筆落下
turtle.forward(5) #前進(jìn)5
turtle.penup() #畫(huà)筆抬起
turtle.forward(5) #前進(jìn)5
turtle.done() #完成
【運(yùn)行結(jié)果】 程序運(yùn)行結(jié)果如圖6-4所示。
圖6-4 例6-3程序運(yùn)行結(jié)果
畫(huà)圈
3.3
turtle庫(kù)提供了circle()函數(shù)用于繪制圓,其語(yǔ)法格式如下。
circle(radius, extent=None, steps=None)
其中,radius表示半徑;extent表示夾角,用于繪制圓的一部分,如果缺省,則繪制整個(gè)圓,如果不是完整的圓周(360的倍數(shù)),則以當(dāng)前畫(huà)筆位置為端點(diǎn)繪制圓弧;steps表示邊的數(shù)量,由于圓實(shí)際是內(nèi)切正多邊形近似得到的,所以此方法也可用于繪制正多邊形,邊數(shù)由steps決定。
繪制圓時(shí),如果radius為正值表示逆時(shí)針?lè)较蚶L制圓,否則表示順時(shí)針?lè)较蚶L制圓,最終畫(huà)筆的朝向會(huì)依據(jù)extent的值改變。
畫(huà)圈
3.3
【例6-4】 繪制圓、正五邊形、圓弧和五邊弧線。
【參考代碼】
import turtle #導(dǎo)入turtle庫(kù)
turtle.circle(50) #繪制半徑為50的圓
turtle.penup() #畫(huà)筆抬起
turtle.forward(150) #前進(jìn)150
turtle.pendown() #畫(huà)筆落下
turtle.circle(50, steps=5) #繪制半徑為50的正五邊形
turtle.penup() #畫(huà)筆抬起
turtle.forward(150) #前進(jìn)150
turtle.pendown() #畫(huà)筆落下
turtle.circle(50, 180) #繪制半徑為50,夾角為180度的圓弧
畫(huà)圈
3.3
【參考代碼】(續(xù))
turtle.penup() #畫(huà)筆抬起
turtle.home() #回到原點(diǎn)
turtle.forward(450) #前進(jìn)450
turtle.pendown() #畫(huà)筆落下
turtle.circle(50, 180, 5) #繪制半徑為50,夾角為180度,邊數(shù)為5的弧線
turtle.done() #完成
【運(yùn)行結(jié)果】 程序運(yùn)行結(jié)果如圖6-5所示。
圖6-5 例6-4程序運(yùn)行結(jié)果
畫(huà)圈
3.3
【程序說(shuō)明】 從運(yùn)行結(jié)果可以看出,第1次調(diào)用circle()函數(shù)時(shí)只有radius參數(shù)(50),繪制的是一個(gè)圓;第2次調(diào)用circle()函數(shù)時(shí)有radius和steps參數(shù)(50和5),繪制的是一個(gè)正五邊形;第3次調(diào)用circle()函數(shù)時(shí)有radius和extent參數(shù)(50和180),繪制的是一個(gè)180度的圓弧;第4次調(diào)用circle()函數(shù)時(shí)有radius、extent和steps參數(shù)(50、180和5),繪制的是一個(gè)180度的五邊弧線。
turtle庫(kù)還提供了dot()函數(shù)用于繪制圓點(diǎn),其語(yǔ)法格式如下。
turtle.dot(size=None, *color)
其中,size表示圓點(diǎn)直徑,缺省時(shí),size取pensize+4和2*pensize中的較大值;color表示圓點(diǎn)顏色,缺省時(shí)為當(dāng)前畫(huà)筆顏色。繪制圓點(diǎn)時(shí),當(dāng)前畫(huà)筆位置為圓心。
畫(huà)圈
3.3
【例6-5】 繪制圓和圓點(diǎn)。
【參考代碼】
import turtle #導(dǎo)入turtle庫(kù)
turtle.circle(50) #繪制半徑為50的圓
turtle.dot(50) #繪制直徑為50的圓點(diǎn)
turtle.done() #完成
【運(yùn)行結(jié)果】 程序運(yùn)行結(jié)果如圖6-6所示。
圖6-6 例6-5程序運(yùn)行結(jié)果
【程序說(shuō)明】 從運(yùn)行結(jié)果可以看出,雖然circle()和dot()函數(shù)的參數(shù)相同,都為50,但在circle()函數(shù)中表示半徑,而在dot()函數(shù)中表示直徑,所以圓和圓點(diǎn)的大小不同。
寫(xiě)字
3.4
write(arg,move=False,align='left',font=('Arial',8,'normal'))
turtle庫(kù)提供了write()函數(shù)用于寫(xiě)字,其語(yǔ)法格式如下。
其中,arg表示文字;move表示畫(huà)筆是否跟隨文字移動(dòng)到文字右下角,如果為T(mén)rue則移動(dòng);align表示對(duì)齊方式,為一個(gè)字符串,可取值“l(fā)eft”“center”或“right”;font表示字體格式,為一個(gè)元組,包括字體、大小和類(lèi)型。
寫(xiě)字
3.4
【例6-6】 “小海龜”的自我介紹。
【問(wèn)題分析】 首先,設(shè)置字體,并抬起畫(huà)筆不畫(huà)線,寫(xiě)第1行字;然后,畫(huà)筆右轉(zhuǎn)90度,前進(jìn)30(向下移一行)后,寫(xiě)第2行字;最后,畫(huà)筆前進(jìn)30后,寫(xiě)第3行字。
【參考代碼】
import turtle #導(dǎo)入turtle庫(kù)
font1 = ('黑體', 14, 'normal') #設(shè)置字體
turtle.penup() #畫(huà)筆抬起
turtle.write('大家好,', True, font=font1) #寫(xiě)第1行字
turtle.right(90) #右轉(zhuǎn)90度
turtle.forward(30) #前進(jìn)30
turtle.write('我是小海龜,', True, font=font1) #寫(xiě)第2行字
寫(xiě)字
3.4
【參考代碼】(續(xù))
turtle.forward(30) #前進(jìn)30
#寫(xiě)第3行字
turtle.write('我可以幫大家繪制各種漂亮的圖形哦!', True, font=font1)
turtle.done() #完成
【運(yùn)行結(jié)果】 程序運(yùn)行結(jié)果如圖6-7所示。
圖6-7 例6-6程序運(yùn)行結(jié)果
【程序說(shuō)明】 從運(yùn)行結(jié)果可以看出,畫(huà)筆右轉(zhuǎn)90度后,朝向變?yōu)槟希秋@示的字還是從左到右,且畫(huà)筆跟隨文字移動(dòng)到右下角。
PART 04
多彩的圖畫(huà)
多彩的圖畫(huà)
4
turtle庫(kù)還提供了fillcolor(*args)函數(shù)設(shè)置或返回圖形的填充顏色,其中,args表示填充的顏色,它有下面4種格式。
(1)調(diào)用本身、bgcolor()函數(shù)或pencolor()函數(shù)的返回值。
(2)指定的Tk標(biāo)準(zhǔn)顏色字符串,如“Red”(紅色)、“Yellow”(黃色)、“#ff0000”(紅色)等。
(3)r、g、b元組表示的RGB顏色,如fillcolor((1.0,0,0))。r、g、b取值范圍為0~colormode,其中,colormode的值為1.0或255。如果colormode的值取255,須先使用colormode(255)函數(shù)設(shè)置顏色模式為255,且r、g、b須為整數(shù)。
(4)r、g、b表示的RGB顏色,如fillcolor(1.0,0,0)。
turtle庫(kù)還提供了color(*args)函數(shù)同時(shí)設(shè)置或返回畫(huà)筆和填充顏色。如果只有一個(gè)參數(shù),表示畫(huà)筆和填充顏色相同;如果有兩個(gè)參數(shù),則第一個(gè)參數(shù)表示畫(huà)筆顏色,第二個(gè)參數(shù)表示填充顏色。
多彩的圖畫(huà)
4
【例6-7】 繪制不同顏色花瓣的6花瓣圖形。
【問(wèn)題分析】 首先進(jìn)行初始化設(shè)置(圓弧半徑radius為150,花瓣數(shù)n為6,畫(huà)筆顏色為紅色);然后計(jì)算圓弧夾角extent和正多邊形的內(nèi)角angle,其中,extent=360/n,angle=(n 2)*180/n;最后循環(huán)繪制6個(gè)花瓣。
其中,一個(gè)花瓣的繪制過(guò)程為:首先隨機(jī)生成r、g、b,并設(shè)置填充顏色;接著繪制半徑為radius、夾角為extent度的圓弧,并左轉(zhuǎn)angle度后,再繪制半徑為radius、夾角為extent度的圓弧;然后左轉(zhuǎn)180度;最后填充顏色。
多彩的圖畫(huà)
4
【參考代碼】
import turtle #導(dǎo)入turtle庫(kù)
import random #導(dǎo)入random庫(kù)
radius = 150 #初始化圓弧半徑為150
n = 6 #初始化花瓣數(shù)為6
extent = 360/n #計(jì)算繪制圓弧的夾角
angle = (n-2)*180/n #計(jì)算正n邊形的內(nèi)角
turtle.colormode(255) #設(shè)置顏色模式為255
turtle.pencolor('Red') #設(shè)置畫(huà)筆顏色為紅色
多彩的圖畫(huà)
4
【參考代碼】(續(xù))
for i in range(n): #循環(huán)n次
r = random.randint(0, 255) #生成1~255的隨機(jī)整數(shù)并賦給r
g = random.randint(0, 255) #生成1~255的隨機(jī)整數(shù)并賦給g
b = random.randint(0, 255) #生成1~255的隨機(jī)整數(shù)并賦給b
turtle.fillcolor(r, g, b) #設(shè)置填充顏色為隨機(jī)生成的r、g、b
turtle.begin_fill() #開(kāi)始填充
turtle.circle(radius, extent) #繪制半徑為radius的extent度圓弧
turtle.left(angle) #左轉(zhuǎn)angle度
turtle.circle(radius, extent) #繪制半徑為radius的extent度圓弧
turtle.left(180) #左轉(zhuǎn)180度
turtle.end_fill() #結(jié)束填充
turtle.done() #完成
多彩的圖畫(huà)
4
【運(yùn)行結(jié)果】 程序運(yùn)行結(jié)果如圖6-8所示。
圖6-8 例6-7程序運(yùn)行結(jié)果
多彩的圖畫(huà)
4
【例6-8】 根據(jù)輸入的邊數(shù)繪制彩色螺旋線。
【問(wèn)題分析】 螺旋線可以看作是由逐漸變大的多邊形交叉螺旋而成。例如,邊數(shù)為5時(shí),效果如圖6-9所示。
首先,設(shè)置顏色列表,包含6種顏色;然后,定義函數(shù)spirals(n)循環(huán)畫(huà)線(n取值2~6,循環(huán)變量為x)繪制螺旋線,循環(huán)中選擇列表中的顏色(索引為x%n)設(shè)置為畫(huà)筆顏色后,畫(huà)筆前進(jìn)2*x像素,再左轉(zhuǎn)360/n+1度(正n邊形的外角為360/n度,由于螺旋線應(yīng)向外擴(kuò)展,所以左轉(zhuǎn)角度為外角度數(shù)加1度);最后輸入邊數(shù),調(diào)用spirals()函數(shù)。
多彩的圖畫(huà)
4
圖6-9 5邊彩色螺旋線
多彩的圖畫(huà)
4
【參考代碼】
import turtle as t #導(dǎo)入turtle庫(kù)為t
#創(chuàng)建顏色列表
colors = ['Red', 'Black', 'Purple', 'Blue', 'Green', 'Brown']
def spirals(n): #定義spirals()函數(shù),參數(shù)為邊數(shù)
t.tracer(False) #不顯示繪制過(guò)程
for x in range(360): #循環(huán)360次
t.pencolor(colors[x % n]) #設(shè)置畫(huà)筆顏色
t.forward(2 * x) #前進(jìn)x的2倍
#左轉(zhuǎn)正n邊形的外角度數(shù)加1度,形成交叉螺旋
t.left(360 / n + 1)
t.tracer(True) #顯示繪制軌跡
n = int(input('請(qǐng)輸入邊數(shù):')) #輸入邊數(shù)
spirals(n) #調(diào)用spirals()函數(shù)
t.done() #完成
多彩的圖畫(huà)
4
【運(yùn)行結(jié)果】 運(yùn)行程序,輸入邊數(shù)(3或6),繪制結(jié)果如圖6-10所示。
圖6-10 例6-8程序運(yùn)行結(jié)果
感謝觀看

展開(kāi)更多......

收起↑

資源預(yù)覽

<pre id="tfb94"><li id="tfb94"></li></pre>

<bdo id="tfb94"><rt id="tfb94"></rt></bdo>
  • <menu id="tfb94"><dl id="tfb94"></dl></menu><i id="tfb94"><acronym id="tfb94"><sub id="tfb94"></sub></acronym></i>

    1. 主站蜘蛛池模板: 凌海市| 瑞金市| 崇义县| 宁蒗| 乌苏市| 拉萨市| 沐川县| 郁南县| 遵义市| 九龙县| 太康县| 金门县| 象山县| 专栏| 海晏县| 南丰县| 南安市| 濉溪县| 武山县| 九龙城区| 安化县| 顺义区| 当涂县| 咸丰县| 弥渡县| 浦东新区| 阳春市| 富顺县| 岳池县| 高要市| 红原县| 廉江市| 邹平县| 天台县| 迁安市| 阳东县| 耿马| 平阴县| 康定县| 河池市| 米易县|