1. 程式人生 > >計算機圖形學 – 橢圓的中點生成演算法

計算機圖形學 – 橢圓的中點生成演算法

演算法描述:

對於一般位置的橢圓, 例如, 可將中心平移到座標原點, 確定好中心在原點的標準位置的橢圓畫素點集後,再平移到位置,將問題轉變為標準位置的橢圓的繪製問題。 

  如果橢圓的長軸和短軸方向不與座標軸x 和y 平行,那麼可以採用旋轉座標變換的方式, 同樣將問題轉變為標準位置的橢圓的繪製

定義下面橢圓中點演算法的判別式:

  則:

  • < 0,說明在橢圓邊界內;
  • = 0,說明在橢圓邊界上;
  • > 0,說明在橢圓邊界外;

  由於橢圓的對稱性, 這裡只討論第一象限橢圓弧的生成。

在處理這段橢圓弧時, 進一步把它分為兩部分: 上部分和下部分,以弧上斜率為- 1 的點作為分界。

在上部分, 在x方向上取單位步長,確定下一畫素的位置;

在斜率小於-1的下部分, 在y方向取單位步長來確定下一畫素的位置。

而橢圓的中點生成過程類似於直線與圓的中點生成演算法。

生成結果: