薛春艷
文章編號:1672-5913(2009)06-0046-03
摘要:“計算機圖形學”是計算機專業(yè)的一門非常重要的基礎課程,但在教學中存在很多問題,本文總結了兩種結合方式的教學方法,分析和探討了其在教學中的應用。
關鍵詞:計算機圖形學;教學方法;教學與實驗
中圖分類號:G642
文獻標識碼:A
1引言
“計算機圖形學”在計算機科學與技術專業(yè)的一門基礎課,其課程涉及圖形硬件設備、圖形系統(tǒng)、交互技術、基本圖形生成算法、幾何變換、真實感圖形生成等內(nèi)容。在筆者的教學實踐當中發(fā)現(xiàn)教學過程中普遍存在以下兩個問題。
1.1理論知識掌握方面
由于“計算機圖形學”具有較強理論性,部分算法比較抽象不易理解。所以學生在學習的時候很難將抽象算法與具體的三維圖像結合起來,經(jīng)常表現(xiàn)出畏難情緒。
1.2實踐能力培養(yǎng)方面
由于“計算機圖形學”課程的教學主要精力放在了圖形的基本概念和算法原理的講解上,上機實踐環(huán)節(jié)滯后;另外,現(xiàn)在大部分的教材中仍然是以Turbo C作為上機實習的平臺,但是由于Turbo C再實際應用中早已不作為開發(fā)工具使用,學生并不能夠在實驗中獲得未來就業(yè)環(huán)境下真是需要掌握的編程知識,需要二次學習才能適應社會的需求。
針對以上問題,給出以下解決方案。
2理論講解與具體開發(fā)工具的使用相結合
圖形通常由點、線、面、體等幾何元素和灰度、色彩、線型、線寬等非幾何屬性組成。如何在計算機中表示圖形以及利用計算機進行圖形的計算、處理和顯示的相關原理與算法,構成了計算機圖形學的主要研究內(nèi)容。目前,大部分《計算機圖形學》教材都是以計算機圖形學的基本概念、基本理論、基本原理及經(jīng)典算法作為主要內(nèi)容,以豐富學生的基礎知識,培養(yǎng)學生的獨立研究能力。然而,在微型計算機日益普及的今天,隨著計算機科學及技術的發(fā)展,出現(xiàn)了很多功能完善的圖形軟件標準和圖形軟件,如何利用他們培養(yǎng)學生的學習興趣,提高實際應用的能力,則是當今教學的重點。
為了能夠更加廣泛地接觸和學習圖形軟件,筆者在以Turbo C語言作為開發(fā)工具來介紹基本圖元的經(jīng)典畫法的同時,將OpenGL引入到計算機圖形學的學習中。
OpenGL是近10年來發(fā)展起來的一個性能卓越的、通用共享的三維圖形標準,已得到廣泛應用。OpenGL提供十分清晰明了的圖形函數(shù),所以圖形繪制可以通過它的各種函數(shù)來實現(xiàn)。OpenGL具有標準型、穩(wěn)定性、可擴展性、可縮放性、易用性、可靠性和可移植性等特點。與其他圖形程序包相比,OpenGL應用程序代碼行數(shù)少,又封裝了有關基本硬件的信息,因此在很多領域都得到廣泛的應用。
在教學過程中,為了讓學生對“計算機圖形學”中所講解的知識能夠更好的理解和掌握,可以從三個步驟來進行講解:
2.1理論講解——基本概念、原理及算法
理論講解過程中,我們可以把OpenGL與之結合起來。例如:我們在講解直線的掃描算法時,首先介紹經(jīng)典的中點繪制直線算法和Bressman算法,通過這兩個算法的原理的介紹可以使學生了解到在計算機中怎樣以像素作為處理單位來實現(xiàn)直線的繪制。然后,我們可以介紹一下OpenGL中對直線進行繪制的方法,從而體會兩種開發(fā)工具的相同和不同之處:
(1) Turbo C:Bressman算法實現(xiàn)直線的繪制
voidBresenham_Line (int x1, int y1, int x2, int y2,int color)
{
intx, y, dx, dy, dk, i;
dx = x2 – x1;dy = y2–y1;dk = dy – dx;
x = x1;y = y1;
for (i = 0; i<=dx; i++)
{ putpixel (x, y, color);
x=x + 1;
if(dk<0)
dk=dk+2*dy;
else
{y = y + 1; dk = dk +2*dy– 2 * dx; }
}
}
(2)OpenGL實現(xiàn)
glBegin ( GL_LINES );
glColor3f(1.0,1.0,0.0);
glVertex2f(-11.0,8.0);
glVertex2f(-7.0,7.0);
glEnd();
在Turbo C中需要具體的算法和參數(shù)實現(xiàn)對像素逐個處理從而形成一條直線;在OpenGL中我們只需要給出直線的坐標、屬性的數(shù)據(jù)就可以得到一條直線了。這樣學生就可以了解到直線的繪制原理,以及在實際開發(fā)中具體實現(xiàn)發(fā)法,有效地把理論知識與實際應用結合起來,達到了較好的教學效果。
2.2多媒體演示——各種圖元、概念、算法的實現(xiàn)和變化過程
由于“計算機圖形學”這門課程中的很多理論知識比較抽象不容易理解,特別是需要學生具有較好的三維空間的立體感,才能更好的理解所學的知識,例如對坐標變換、投影變換等部分的概念的理解,對很多學生來講都很難理解,為了達到更好的教學效果,可以將OpenGL引入到課程學習中,通過OpenGL的對應函數(shù)的多媒體演示,幫助學生更好地掌握這部分知識。在介紹了基本的變換中的平移變換、縮放變換和旋轉(zhuǎn)變換的概念時,在計算機圖形學中我們一般是通過二維的圖形來幫助學生理解,如圖1~3。
OpenGL多媒體演示見圖4。
在OpenGL中分別使用glTranslatef()來表示平移變換,三個參數(shù)分別表示在三個坐標平移的距離;glRotatef()用來表示旋轉(zhuǎn)變換,一個參數(shù)表示旋轉(zhuǎn)地角度,另外一個參數(shù)表示旋轉(zhuǎn)軸的坐標;glScalef()表示縮放變換,三個參數(shù)表示在三個坐標軸方向的縮放比例。這里,通過多媒體可是課件,通過鼠標來控制參數(shù)的值,根據(jù)參數(shù)值的變化,顯示效果也會隨之變化。通過這種三維的動態(tài)多媒體課件的演示,可以使學生更好的理解三種變換,同時對OpenGL中對應的函數(shù)及其參數(shù)的具體含義有了更好的掌握。
2.3具體應用——原理算法的具體應用
在完成前兩個步驟的基礎上,可以通過一些小的應用程序或游戲程序的演示,將其中對應的圖形繪制方法的應用提煉分析出來,這樣可以使學生對所學知識的具體應用有較直觀的認識,為其將來的進一步學習和實踐打下基礎。
3教學與實驗相結合
“計算機圖形學”是一門實踐性很強的課程,但在目前,普遍存在的現(xiàn)象是“計算機圖形學”課程的理論教學內(nèi)容存在著一定孤立性,與上機實踐聯(lián)系并不緊密;因此,有必要加強學生動手能力的培養(yǎng)。為了確保計算機圖形學課程的教學質(zhì)量,應該選用目前市場上比較流行的圖形開發(fā)環(huán)境作為學生的實踐環(huán)境,同時也要注重課堂知識的消化,因此理論知識的對應實驗也不能輕視。筆者認為應將兩者有效地結合起來才能達到更好的效果。
為了能夠幫助學生更好地理解理論知識,更好地提高動手能力,實驗部分可以分三部分進行:
(1) 基礎實驗:主要完成各種理論講解過程中學習的代碼實現(xiàn),編程環(huán)境為Turbo C。
(2) 提高實驗:以Visual C++ 和OpenGL作為開發(fā)環(huán)境,進行實踐動手能力的培養(yǎng)和訓練。
(3) 體驗實驗:以3D Max作為開發(fā)環(huán)境,進行圖形圖像軟件開發(fā)的體驗實驗。
基礎實驗可以幫助學生更好地理解基本的理論和各種基本圖元的經(jīng)典算法。
提高實驗可以提高學生理論聯(lián)系實際的能力,能夠使學生更多地接觸實際開發(fā)中所使用的工具和開發(fā)環(huán)境,為將來的工作打好基礎。
體驗實驗中的3DMax是圖形開發(fā)的具體產(chǎn)品,通過對其的使用和接觸,可以讓學生感知到計算機圖形學的應用情況。
通過基礎實驗、提高實驗和體驗實驗的結合練習,不但可以提高學生的編程能力,而且加深了學生對所學知識的了解和認識,使學生對“計算機圖形學”的實際應用有了感性的認識。
4結語
“計算機圖形學”是計算機學科的主要基礎課程之一,但由于各種原因,學生學起來有一定的難度,這給授課的教師帶來相當大的挑戰(zhàn)?!坝嬎銠C圖形學”的教學是一個復雜的系統(tǒng)工程,它會涉及到諸多方面的問題,以上所述僅僅是筆者授課過程中得粗略總結,有不妥或不足之處,敬請大家批評指正。
參考文獻:
[1] 張曦煌,杜俊俐. 計算機圖形學[M]. 北京郵電大學出版社,2006,8.
[2] OpenGL體系結構審核委員會等. OpenGL編程指南(第4版)[M]. 人民郵電出版社,2005,4.
[3] 陳元琰, 張睿哲, 吳東. 計算機圖形學實用技術(第2版)[M]. 清華大學出版社,2007,3.
Teaching method discussion of Computer Graphics
XUE Chun-yan
( XiamenUniversity Tan Kah Kee college)
Abstract:Computer Graphics is a very importment course of computer speciality , here are a lot of problems in teaching, this text has summarize two kinds of teaching methods and has analyzed and probed into its application in teaching.
Key words: Computer Graphics; teaching method