Мегаобучалка Главная | О нас | Обратная связь


Алгоритмы вычерчивания окружностей



2020-03-19 299 Обсуждений (0)
Алгоритмы вычерчивания окружностей 0.00 из 5.00 0 оценок




 

Цель работы: изучение алгоритма Брезенхема для вычерчивания окружностей.

В растр нужно разлагать не только линейные, но и другие, более сложные функции. Один из наиболее эффективных и простых для понимания алгоритмов генерации окружности принадлежит Брезенхему. Для начала заметим, что необходимо сгенерировать только одну четвертую часть окружности. Остальные ее части могут быть получены последовательными отражениями. Первый квадрант отражается относительно прямой х = 0 для получения соответствующей части окружности во втором квадранте. Верхняя полуокружность отражается относительно прямой у = 0 для завершения построения.

Для вывода алгоритма рассмотрим первую четверть окружности с центром в начале координат. Заметим, что если работа алгоритма начинается в точке
х = 0, у = R, то при генерации окружности по часовой стрелке в первом квадранте у является монотонно убывающей функцией аргументам (рисунок 4.1).

 

Рисунок 4.1 – Окружность в первом квадранте

 

Аналогично, если исходной точкой является у = 0, х = R, то при генерации окружности против часовой стрелки х будет монотонно убывающей функцией аргумента у. В нашем случае выбирается генерация по часовой стрелке с началом в точке х = 0, у = R. Предполагается, что центр окружности и начальная точка находятся точно в точках растра.

Для любой заданной точки на окружности при генерации по часовой стрелке существует только три возможности выбрать следующий пиксель, наилучшим образом приближающий окружность: горизонтально вправо, по диагонали вниз и вправо, вертикально вниз. На рисунке 4.2 эти направления обозначены mH, mD, mV соответственно. Алгоритм выбирает пиксель, для которого минимален квадрат расстояния между одним из этих пикселей и окружностью, т. е. минимум из

 

                        (4.1)

(xi, yi)
(xi+1, yi)


mV
mD
mH
(xi, yi–1)
(xi+1, yi–1)

Рисунок 4.2 – Выбор пикселей в первом квадранте

 

Вычисления можно упростить, если заметить, что в окрестности точки (xi, yi) возможны только пять типов пересечений окружности и сетки растра, приведенных на рисунке 4.3.

 

(xi+1, yi+1)
(xi+1, yi)
(xi+1, yi–1)
(xi, yi–1)
(xi–1, yi–1)
mD
mV
mH
(xi, yi)

Рисунок 4.3 – Пересечение окружности и сетки растра

 

Разность между квадратами расстояний от центра окружности до диагонального пикселя (xi + 1, уi – 1) и от центра до точки на окружности R2 равна

 

                                 (4.2)

 

В алгоритме Брезенхема желательно использовать только знак ошибки, а не ее величину.

При Di < 0 диагональная точка (xi + 1, уi – 1) находится внутри реальной окружности, т. е. это случаи 1 или 2 на рисунке 4.3. Ясно, что в этой ситуации следует выбрать либо пиксель (xi + 1, уi), т. е. mH, либо пиксель (xi + 1, уi – 1), т. е. mD. Для этого сначала рассмотрим случай 1 и проверим разность квадратов расстояний от окружности до пикселей в горизонтальном и диагональном направлениях:

 

      (4.3)

 

При d < 0 расстояние от окружности до диагонального пикселя больше, чем до горизонтального. Напротив, если d > 0, расстояние до горизонтального пикселя больше. Таким образом:

при d <= 0 выбираем mH в (xi + 1, уi – 1);

при d > 0 выбираем mD в (xi + 1, уi – 1);

при d = 0, когда расстояние от окружности до обоих пикселей одинаково, выбираем горизонтальный шаг.

 

Практическое задание

Составить алгоритм и программу для отображения объекта № 2 методом Брезенхема.

Содержание отчета: блок-схема данной программы; краткие ответы на вопросы, приведенные в таблице 4.1; распечатка листа Excel с результатами.

 

Таблица 4.1 – Вопросы для защиты

 

Вопрос Рейтинг
Записать формулы, для вычисления расстояния между возможными пикселями и окружностью 1
Привести типы пересечений окружности и сетки растра 1
Как изменяется величина di при закрашивании пикселя по mh 1
Как изменяется величина di при закрашивании пикселя по mV 1
Как изменяется величина di при закрашивании пикселя по mD 1
Пояснить схему алгоритма формирования окружности 3

 



2020-03-19 299 Обсуждений (0)
Алгоритмы вычерчивания окружностей 0.00 из 5.00 0 оценок









Обсуждение в статье: Алгоритмы вычерчивания окружностей

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (299)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)