|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Случай Dd < 0Стр 1 из 2Следующая ⇒
Рис. 1: Варианты расположения очередного пиксела окружности
При генерации окружности по часовой стрелке после занесения точки (Xi, Yi) следующая точка может быть (см. рис. 0.1а) либо Pg = (Xi+1, Yi) - перемещение по горизонтали, либо Pd = (Xi+1, Yi-1) - перемещение по диагонали, либо Pv = (Xi, Yi-1) - перемещение по вертикали. Для этих возможных точек вычислим и сравним абсолютные значения разностей квадратов расстояний от центра окружности до точки и окружности:
Выбирается и заносится та точка, для которой это значение минимально. Выбор способа расчета определяется по значению Dd. Если Dd < 0, то диагональная точка внутри окружности. Это варианты 1-3 (см. рис. 0.1б). Если Dd > 0, то диагональная точка вне окружности. Это варианты 5-7. И, наконец, если Dd = 0, то диагональная точка лежит точно на окружности. Это вариант 4. Рассмотрим случаи различных значений Dd в только что приведенной последовательности. Случай Dd < 0 Здесь в качестве следующего пиксела могут быть выбраны или горизонтальный - Pg или диагональный - Pd. Для определения того, какой пиксел выбрать Pg или Pd составим разность:
При di £ 0 будем выбирать точку Pg, в противном случае выберем Pd. Рассмотрим вычисление di для разных вариантов. Для вариантов 2 и 3: Dg ³ 0 и Dd < 0, так как горизонтальный пиксел либо вне, либо на окружности, а диагональный внутри.
Добавив и вычтя (Y-1)2 получим:
В квадратных скобках стоит Dd, так что
Для варианта 1: Ясно, что должен быть выбран горизонтальный пиксел Pg. Проверка компонент di показывает, что Dg < 0 и Dd < 0, причем di < 0, так как диагональная точка больше удалена от окружности, т.е. по критерию di < 0 как и в предыдущих случаях следует выбрать горизонтальный пиксел Pg, что верно.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|