![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Растровая развертка окружностей
Четырехсторонняя симметрия
Рис. 3.7
Существует несколько простых, но не эффективных способов развертки окружности. Рассмотрим окружность с центром в начале координат:
Чтобы изобразить
Восьмисторонняя симметрия Процесс преобразования окружностей в растровую форму можно улучшить, если полнее использовать симметричную окружности. Поэтому удобно вычислить значения окружности на дуге в 450, а потом симметрично отобразить их.
Алгоритм Брезенхэма для окружностей Брезенхэм разработал пошаговый генератор дуг, который более эффективен, чем рассмотренные ранее. Необходимо сгенерировать только 1\8 часть окружности. Остальные части получаются путем отображения: · 1-ой октант – отражение относительно y=x 1-го октанта; · 2-ой квадрант – отражение относительно x=0 1-го квадранта; · нижняя полуокружность – отражение относительно y=0 верхней полуокружности
Рис. 3.8
Рассмотрим 1-ую четверть окружности с центром в начале координат. Начнем работу в т. x=0, y=R, окружность генерируется по часовой стрелке, y – монотонно убывающая функция аргумента x до т. Для любой заданной т. на окружности существует только 2 возможности выбрать следующий
Алгоритм выбирает ![]()
Рис. 3.9
Вводится упрощающая переменная
Возможно 7 способов прохождения истинной окружности через сетку. Пусть ![]() ![]() ![]() ![]() ![]() ![]() ![]()
Рис. 3.10
Если Если Введем упрощающую переменную
Если
Для случаев 1, 2:
Для случая 3:
Для случаев 4, 5:
После некоторых математических выводов было получено:
если
|