宋雅娟 尚鮮連




摘? 要: 為了提高學生在翻轉課堂模式下對Python語言進行自主學習的興趣,開發一個基于Python Turtle庫的圖形動畫案例庫集成軟件。在軟件中可以直觀地看到圖形案例、動畫程序、小游戲程序的運行效果及其實現代碼。案例內容從簡單到復雜,從靜態到動態,有助于學生通過案例自主學習,在教學中取得了良好的應用效果。該軟件可以應用于高職、高專Python翻轉課堂教學中,也可以應用于Python愛好者的自學。
關鍵詞: Python教學; 圖形動畫案例庫; Turtle庫; 翻轉課堂
中圖分類號:G433? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2021)12-106-03
Abstract: In order to improve students' interest in autonomous learning of Python language in flipped classroom mode, integrated software of graphic animation case library based on Python Turtle library is developed. In the software, the running effect and the implementation code of graphic cases, animation programs and small game programs can be intuitively seen. The content of case is from simple to complex, from static to dynamic, which is helpful to students' autonomous learning through case, and has achieved good application effect in teaching. The software can be applied to the flipped classroom teaching of Python in higher vocational college and higher technical college, and can also be applied to the self-learning of Python enthusiasts.
Key words: Python teaching; graphic animation cases library; Turtle library; flipped classroom
0 引言
Python是一種面向對象的解釋型計算機程序設計語言,Python語言易學易用,具備豐富的開源庫[1],已成為繼Java,C++之后的第三大程序設計語言。為了激發學生學習興趣,圖形動畫案例不斷被引入各種程序語言的教學中。文獻[2-4]中是將EasyX制作的圖形案例應用于“C語言程序設計”的教學過程中,文獻[5]是將圖形動畫案例應用于“Java語言程序設計”的教學中。隨著翻轉課堂線上線下教學模式的發展,各種輔助教學資源不斷被應用在計算機專業的教學過程中[6]。
Python可以用來開發人工智能程序、動畫游戲程序、圖像處理程序。本文設計并實現Turtle庫圖形動畫小游戲案例庫,并利用tkinter庫的菜單功能對所有案例加以整合,形成一個相對完整的案例庫軟件平臺,涵蓋一系列由簡單到復雜的圖形動畫案例。 Python各種知識點貫穿其中,既可作為線上教學資源,也可以作為課堂教學案例使用。在提高程序語言的教學質量的同時,為自主學習Python探索一種新的方法。
1 案例庫軟件平臺的功能結構
用戶進入軟件系統后,可以在菜單欄中選擇不同內容,查看案例的運行效果。系統具體功能如圖1所示。
選擇“坐標基礎”菜單項后有兩個選項,可以查看Turtle的角度示意圖和坐標值示意,為用戶學習Turtle繪圖體系奠定基礎。
選擇“畫圖”菜單項后有“畫直線”、“矩形”、“圓”、“三角形”、“圓柱”等子菜單,點選后輸入參數,可在界面上看到繪制圖形的過程,并顯示函數說明文字。
選擇“動畫”菜單項后會出現“小烏龜”、“福字”、“幸福中國結”、“地鐵交通線路圖”、“五星國旗”等Turtle繪制的圖形及動畫。通過這些案例,可以看到Python制作動畫的豐富效果,激發相關創意及學習興趣。
選擇“小游戲”菜單項后有基本彈球游戲及改版的動畫。用戶可以看到如何在一個基本程序基礎上進行場景圖形的擴展,并可看到場景中出現之前菜單中繪制的圖形,學習到圖形、動畫的綜合實現方法。
2 軟件的設計與實現
2.1 坐標基礎菜單項
用戶進行繪圖首先需要了解Turtle庫的坐標系,——度示意圖,見圖2(a)。可以看到小烏龜坐落在原點(0,0)處,位于畫布的中心。烏龜頭朝向x軸正向,角度為0度,y軸正向的角度為逆時針90度或順時針旋轉-270度,用戶在使用程序驅動小烏龜運動時可以按此角度進行運作。
另一個是坐標象限位置示意圖,見圖2(b),中心點為坐標原點(0,0),分成四個象限。通過這個圖,可以了解Turtle坐標系,知道坐標原點、各個象限坐標情況。這兩個坐標圖不僅展示了Turtle庫的坐標使用情況,同時通過代碼也可以掌握如何應用Python繪制一個線條形式的示意圖。
2.2 畫圖菜單項
此部分提供繪制直線、圓、三角形、圓柱等基本圖形和組合圖形的案例。在繪制相應圖形后以文本方式輸出完成圖形的相關代碼,有助于Turtle庫的函數的學習。Turtle庫中提供了相應的繪制線條、圓等基本函數,使用畫圖菜單項即可看到繪制的效果,并通過文本內容及程序代碼學習Turtle庫的基本繪圖函數。
此部分的案例涉及基本圖形及組合圖形的繪制,在學習基本圖形后利用所學內容進行拓展,發揮創意,從而可以繪制需要的復雜圖形。
2.3 動畫菜單
“動畫”子菜單中提供復雜圖形及場景的繪制,當點擊選項時,即可出現繪制過程,更容易理解繪制圖形的代碼,提供的案例主要有幸福中國結、卡通小烏龜、五星紅旗、地鐵線路示意圖及福字的繪制。
例如“幸福中國結”這個案例可以學習到通過Turtle中的定時器制作圖形動畫的方法。動畫過程見圖3。圖中有四個紅色中國結,大小不同、位置不同。動畫進行過程中,兩個大的中國結從下向上垂直運動到頂端停止,兩個小的中國結從上向下垂直運動,碰到長凳即停止。用戶可以通過鍵盤控制畫面中的長凳進行左右上下的移動。該案例中涉及到函數調用、順序結構;繪制中國結中的循環結構、選擇結構;多個中國結的繪制涉及到列表數據結構;長凳移動涉及到字典數據結構、鍵盤事件處理。此案例可以貫穿Python中基本知識點。
其他的卡通小烏龜、五星紅旗、地鐵線路示意圖及福字的繪制,則是應用不同案例展示應用Python turtle庫所能完成的多種形式的復雜圖形創意及繪制,有助于激發更多的圖形創意設計思路。
2.4 小游戲案例菜單
小游戲案例菜單提供了二個版本的彈球小游戲。第一個是基本的彈球游戲,彈球在界面上按一定方向運行。當碰到兩側的球拍時,球被彈回。小游戲中的第二個彈球案例如圖4所示。這個案例設計實現了彈球在一個場景中的運動過程。場景中有三個區域,右上角區域懸掛著一個紅色中國結,周圍有黑色邊框。左上角是一個有黑色填充圖形的花朵圖案。下方是一把椅子上坐著一個人。場景中有一個彈球,按一定方向進行運動,當碰到花朵與中國結的邊框時會被彈向相反方向,碰到場景四周的邊界時也會被彈回。案例中有靜態圖形和動畫效果。使用與幸福中國結中同樣的中國結圖案,展示了程序模塊及圖形組合的作用。簡單線條繪制的椅子增加了場景的立體感。這樣一個比較綜合的案例可以連接前面的案例,從淺入深地完成了一個動畫及交互功能的實現。
這個案例的改版處在于保持彈球的運動程序,但增加了比較豐富的場景元素。
3 結束語
本文對基于Turtle庫的Python案例軟件平臺進行了介紹與闡述。軟件中的案例從基本圖形到復雜圖形,從靜態場景到動畫界面,從無交互到有鍵盤控制。形成一個階梯式學習Python的過程。此案例庫展示更多的設計可能性,有助于激發更好更復雜的創意。可以通過課程網站不斷擴充案例庫,既讓學生能獲得越來越多的創意啟發,也可讓學生因對案例庫的貢獻工作而產生成就感和滿足感。
參考文獻(References):
[1] 嵩天,黃天羽,禮欣.Python語言:程序設計課程教學改革的理想選擇[J].中國大學教學,2016.2:42-47
[2] 張煜昕.基于EasyX圖形庫的多線程繪圖應用[J].電腦知識與技術,2018.14(30):226-228
[3] 宋雅娟,邊晶.基于easyX動畫案例開發導向的C語言程序設計課程教學方法研究[J],長春大學學報, 2018.220(6):117-121,125
[4] 李柯景.EasyX在C語言課程教學中的應用[J].科教導刊,2018.331(3):91-92
[5] 王洋.Java就該這樣學[M].電子工業出版社,2013.
[6] 尚鮮連,曾海,宋雅娟等.基于移動學習的線上線下混合式教學模式研究與實踐[J].教育教學論壇,2020.41:250-252