КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Алгоритми Брезенхема растрової дискретизації окружності й еліпса
Алгоритм зображення окружності трохи складніше, ніж побудова відрізка. Ми розглянемо його для випадку окружності радіуса
Рис. 10.7. Найближчий пиксель при русі по окружності При обраному напрямку руху по окружності є тільки три можливості для розташування найближчого пикселя: на одиницю вправо, на одиницю долілиць і по діагоналі долілиць (мал. 10.7). Вибір варіанта можна здійснити, обчисливши відстані до цих крапок і вибравши мінімальне з них:
Алгоритм можна спростити, перейшовши до аналізу знаків величин Після переходу в крапку Таким чином, алгоритм малювання цієї частини окружності можна вважати повністю описаним (блок-схема його наведен на мал. 10.8). Всі її частини, що залишилися, будуються паралельно: після одержання чергової Для побудови растрового розгорнення еліпса з осями, паралельними осям координат, і радіусами
яке перепишемо у вигляді
На відміну від окружності, для якої було досить побудувати одну восьму її частину, а потім скористатися властивостями симетрії, еліпс має тільки дві осі симетрії, тому прийде будувати одну чверть всієї фігури. За основу візьмемо дугу, що лежить між крапками
Рис. 10.8. Блок-схема побудови восьмої частини окружності У кожній крапці Напрямок нормалі відповідає вектору
Звідси знаходимо тангенс кута нахилу вектора нормалі:
Рис. 10.9. Дві області на ділянці еліпса
Рис. 10.10. Схема переходу в першій і другій областях дуги еліпса При переміщенні уздовж першої ділянки дуги ми з кожної крапки переходимо або по горизонталі, або по діагоналі, і критерій такого переходу нагадує той, котрий використовувався при побудові растрового образа окружності. Перебуваючи в крапці На другій ділянці дуги можливі перехід або по діагоналі, або по вертикалі, тому тут спочатку значення координати y зменшується на одиницю, потім обчислюється Залишається оптимізувати обчислення параметра
Для другої половини дуги одержимо
Всі дуги, що залишилися, еліпса будуються паралельно: після одержання чергової
Дата добавления: 2014-01-07; Просмотров: 430; Нарушение авторских прав?; Мы поможем в написании вашей работы! |