李紅林
摘 要:本文針對傳統(tǒng)圖形學的教學方式存在的不足,對計算機圖形學中基本的圖元生成算法的可視化進行了研究,并基于VC 6.0/MFC,實現(xiàn)了計算機基本圖元可視化教學演示系統(tǒng),使學生真正理解了基本圖形元素的生成的具體過程,從而提高了學生的學習興趣。
關鍵詞: VC 圖元 掃描轉換 區(qū)域填充
中圖分類號:TP391 文獻標識碼:A 文章編號:1672-3791(2016)05(a)-0000-00
計算機圖形學是研究利用計算機生成、處理圖形的學科[1]。該課程要求學生具有一定的程序設計知識和數(shù)學知識。在教學中,很多學校采用播放靜態(tài)圖片和一些基本算法源程序組成的教學幻燈片的模式。學生較難理解圖形學算法的精要,從而影響其學習的主動性和積極性?;诖?,本文基于VC++6.0 ,對圖形學中基本圖元生成算法的可視化進行了研究。
基本圖形元素是指點、線、圓(圓?。?、區(qū)域填充和字符等[2]。在光柵掃描顯示器上顯示的圖形,都是具有一種或多種顏色的像素的集合。確定最佳逼近圖形的像素集合,并用指定屬性寫像素的過程稱圖形的掃描轉換或生成[3]。本文主要研究點、線、圓的生成及填充。
1 點生成
計算機的光柵顯示器可看作一個像素的矩陣,在其上顯示圖形,實際上是其中特定像素的集合[4]。點用一個像素表示,它是最基本的圖形元素。屏幕上的一個點的坐標(x,y)代表一個像素點,要使該像素點發(fā)亮,需在緩沖器的對應地址位處,寫一個灰度級別或色彩值。
2 直線生成
直線生成,實際上是在線段所對應的像素上畫點的連續(xù)過程[2]。主要有直線方程、DDA、中點畫線、Bresenham畫線算法等。本文生成直線時,斜率取值為:。
2.1 直線方程生成直線
利用方程生成直線。當x每增加或減少1,代入直線方程算一算y的取值。
2.2 DDA算法
算法的實質是用數(shù)值方法解微分方程,是一種增量的方法。同時對x和y各增加一個小增量來計算下一步的x、y值。當時,x 每增加或減少1,y就增加或減少k。
2.3中點畫線算法
如圖1所示。在圖1中, M是P1P2的中點,Q為直線與P1P2的交點,P是當前點,P的下一個距離理想直線最近的點要么取P1,要么取P2。若M在理想直線的下方,下一個點取P2,若M在理想直線的上方,P的下一個點應該取P1。若M恰好在理想直線上,下一個點可取P1也可取P2。以此類推,找到其余距離理想直線較近的點。
2.4 Brenham畫線算法
如圖2所示。已知當前點是P,Q為直線與P1P2的交點,Q把P1P2分成兩段,一段是t,另一段是s,P的下一個距離理想直線最近的點要么取P1,要么取P2。若s>t,P的下一個點取P2;若s3 圓掃描轉換算法
若要掃描轉換圓,常用的方法有中點法與Bresenham畫圓算法。
3.1中點畫圓算法
如圖3所示,P是當前點,M是P1P2的中點,要確定P的下一個距離理想圓弧較近的點是P1還是P2,只需把M點的坐標代入圓的方程,若,則說明M在圓外,下一個距離理想圓弧較近的點是P2,若,則說明M在圓內(nèi),下一個距離理想圓弧較近的點是P1,若,則說明M在圓上,下一個距離理想圓弧較近的點可以是P1也可以是P2。以此類推,依次找到距離理想圓弧較近的1/8圓周上的所有點。
3.2 Bresenham畫圓算法
如圖4所示,P是當前點,Q是級段P1P2與理想圓弧的交點,要確定P的下一個距離理想圓弧較近的點是P1還是P2。假設P1到Q的距離為d1,P2到Q的距離為d2。若d1>d2,下一個距離理想圓弧較近的點是P2,若d1