загрузка...
загрузка...
На головну

II. Зображення еліпсів та інших кривих другого порядку


Мал. 5. Зображення еліпса.

Перш за все, відзначимо, що у еліпса, на відміну від окружності, всього 2 осі симетрії, тому по точках доведеться будувати вже 2 октанта. (Див. Рис. 5)

1) Будемо міркувати подібно алгоритму, який ми застосовували для зображення кіл.

Неявна функція, що задає еліпс, має вигляд:

, a> b U b2* x2 + a2* y2 - a2* b2 = 0

введемо f (x, y) = b2* x2 + a2* y2 - a2* b2


Аналогічно алгоритму для окружності можна порівнювати fдля двох можливих варіантів ? приходимо до аналогічним алгоритмом, але у нього буде вже велика розмірність обчислень, ніж у алгоритму для окружності.

2) Скористаємося тим, що еліпс з параметрами a, b; a> b виходить з кола радіуса aстисненням по осі y в a / b раз. Побудуємо алгоритм, який є якоюсь комбінацією алгоритмів Брезенхема для окружності і для відрізка.

Мал. 6. Побудова еліпса шляхом стиску окружності.  Почнемо з точки (a, 0) на колі і з точки (0,0) на відрізку. Будемо будувати еліпс точно також як окружність, але зміщати поточну точку по y тільки в тому випадку, коли такий зсув відбувається в поточному кроці вже для відрізка, т. Е. Побудова відрізка якраз і є реалізацією стиснення в a / b раз (точніше, його дискретної аппроксимацией). Цей алгоритм теж має недолік: можлива змішана зв'язність отриманої лінії (Рис. 7).Мал. 7. Змішана зв'язність.
I. Зображення кіл. «-- попередня | наступна --» II. Інтерполяція.
загрузка...
© om.net.ua