跳转到内容

User:Maatflow/Midpoint circle algorithm

维基百科,自由的百科全书
以 Bresenham 中點圓算法柵格化一個半徑為 23 的圓。只有綠色的八分之一圓真正的被計算了,但鏡射後的結果產生了剩下的八分之七。
以 Bresenham 中點圓算法畫出的一個半徑為 23 的圓。

在電腦圖形學中,中點圓算法是一個用來決定柵格化時所需點的演算法。 這個算法可以推導出布雷森漢姆畫圓演算法。這個演算法可以被推廣到圆锥曲线[1]

這個演算法被視為與 Pitteway 和 Van Aken 的貢獻有關。

總覽

[编辑]

這個演算法同時畫出一個圓的八個部分,從四個基本方位開始(0°, 90°, 180°, 270°) 各往兩邊延展四十五度。 在所畫方位達到四十五度時,我們可以發現相對圓心於的(x, y)中 x與y絕對值相同而停下。從上圖中可以看出使用這些角度的原因: 在x座標增加時,所畫的跳過任何一個 x 值, The reason for using these angles is shown in the above picture: As x increases, it does not skip nor repeat any x value until reaching 45°. So during the while loop, x increments by 1 each iteration, and y decrements by 1 on occasion, never exceeding 1 in one iteration. This changes at 45° because that is the point where the tangent is rise=run. Whereas rise>run before and rise<run after.

外部連結

[编辑]

[[Category:带有C代码示例的条目]] [[Category:數位幾何學]]

  1. ^ Donald Hearn; M. Pauline Baker. Computer graphics. Prentice-Hall. 1994. ISBN 978-0-13-161530-4.