武丹 許如星 中國計量大學理學院
計算機圖形學是計算機科學與技術專業(yè)的選修課。這是一門研究如何使用計算機來生成、處理和顯示圖形的學科。圖形用戶界面已經成為軟件的重要組成部分,以圖形化的方式表達抽象概念或數據(可視化)已成為信息領域的一個重要趨勢。開設這門課的目的是讓學生理解和掌握圖形。學習的基本概念、方法和技術使學生掌握計算機圖形處理系統(tǒng)的組成和工作原理,具有一定的開發(fā)圖形應用系統(tǒng)的能力。通過本課程的學習,學生熟悉圖形生成的基本理論,掌握三維真實感圖形的生成算法,并利用Visual C++的MFC框架編程的實現方法。而橢圓的繪制作為其中非常重要的一個方向,需要學生熟練掌握?;诖吮疚膶E圓的繪制算法進行詳細解讀,并對其中的需要注意的問題進行討論。接下來我們按照順序來對其進行講解。
在圓的繪制中,需要繪制八分之一的圓弧??紤]到橢圓的對稱性,可以根據對稱軸x=0和y=0把橢圓分成四份。只要畫出第一象限的1/4個橢圓弧,就可以根據對稱性畫出整個橢圓。這被稱為四分位橢圓算法。知道第一象限中的點P(x,y),可以求出橢圓順時針方向的其他三個對稱性是p(x,y),p(x,y),p(x,y)。這一點需要和學生提前講明,在以往的授課過程中,學生編程時很容易出錯。
為了區(qū)分第一象限的橢圓弧的不同,需要計算橢圓弧上任一點的法矢量。利用《高等數學》中的偏導數計算橢圓上任意一點P(x,y)處的法矢量
式中,i和j是沿x軸向和沿y軸向的單位矢量。
在上半部分Ⅰ,x方向每次加1,y方向上減不減1取決于中點誤差項的值。從Pi(xi,yi)點出發(fā)選取下一像素時,需將Pu(xi+1,yi)和Pd(xi+1,yi-1)的中點M(xi+1,yi-0.5)代入隱函數,構造中點誤差項
假定圖1中)點是橢圓弧上半部分Ⅰ的最后一個像素+1,yi-0.5)是用于判斷選取Pu和Pd像素的中點。由于下一像素就轉入了橢圓弧的下半部分Ⅱ,所以其中點轉換為判斷Pl和Pr的中點MⅡ(xi+0.5,yi-1),所以下半部分的初始值d20為
橢圓曲線的繪制是計算機圖形中非?;A的算法,因此要求學生必須掌握,但是對于初次利用高等數學中的知識來解決計算機圖形學中的簡單問題,需要把學生的數學知識轉換為編程知識,因此需要特別注意橢圓弧的分段表示,橢圓弧的初始值的繪制,以及橢圓弧不同階段的遞推公式。通過這樣簡單的分析,學生能夠很好的理解算法過程,并能夠實現代碼。
[1]孔令德,計算機圖形學-基于MFC三維圖形開發(fā),清華大學出版社,2014