gn="justify"> Далі розглянемо деякі алгоритми, что Працюють як в об'єктному пространстве, так и в пространстве зображення. Кожний з них ілюструє одну або кілька основних Ідей Теорії алгоритмів відалення невидимих ??ліній и поверхонь.
Алгоритм Плаваюча обрію найчастіше вікорістається для відалення невидимих ??ліній трівімірного Подання функцій, что опісують Поверхня у виде
(x, в, z)=0
Подібні Функції вінікають у багатьох Додатках у математику, техніку, природничих науках и других дісціплінах.
Існує много алгоритмів, что вікорістають цею ПІДХІД. Оскількі в Додатках в основному нас цікавить описание поверхні, цею алгоритм звічайна працює в пространстве зображення. Головна ідея даного методу Полягає у Відомості трівімірної задачі до двовімірного путем перетінання віхідної поверхні послідовністю паралельних січніх площинах, что мают постійні значення координат x, y або z .
На рис. 2.6 наведень приклад, де зазначені Паралельні площини визначаються постійнімі значень z. Функція F (x, у, z)=0 зводу до послідовності кривих, что лежати біля Кожній Із ціх паралельних площинах, например до послідовності
y=f (x, z) або y=g (y, z)
де z Постійно на Кожній Із завданні паралельних площинах (рис. 2.2).
Отже, поверхня тепер складається з послідовності кривих, что лежати біля Кожній Із ціх площинах, як показано на рис. 2.7. Тут передбачається, что отрімані криві є однозначними функціямі незалежних змінніх. Если спроектувати отрімані криві на площинах z=0, то відразу становится ясна ідея алгоритму відалення невидимих ??ділянок віхідної поверхні. Алгоритм спочатку впорядковує площини z=const по зростанню відстані до них від точки спостереження. Потім для кожної площини, починаючі з найбліжчої до точки спостереження, будується крива, что лежить на ній. Алгоритм відалення невидимої Лінії Полягає в Наступний: если на поточній площіні при деякім заданому значенні x відповідне значення y на крівій более значення y для всіх попередніх кривих при цьом значенні x, то поточна крива видимою у Цій точці; у противному випадка вон невидима (рис. 2.3).
Реалізація даного алгоритму й достатньо проста. Для зберігання максимальних значень y при шкірному значенні x вікорістається масив, довжина которого дорівнює числу помітніх крапок (дозволена) по осі x у пространстве зображення. Значення, что збеігаюься в цьом масиві, являються собою Поточні значення «обрію». Тому в міру малювання кожної черговий кривий цею обрій «спліває». Фактично цею алгоритм відалення невидимих ??ліній працює щораз Із однією лінією.
Алгоритм працює Дуже добре Доті, поки яка-небудь чергова крива НЕ віявіться нижчих найпершої Із кривих. Як показано на рис. 2.8. Подібні криві, природно, відімі и являються собою нижню сторону віхідної поверхні. Однако
Рис. 2.6 січні площини з постійною координат
Рис. 2.7 криві в січніх площинах з постійною
алгоритм буде вважаті їх невидимими. Нижня сторона поверхні робиться відімої, если модіфікуваті цею алгоритм, включивши в него Нижній обрій, что опускається вниз по ходу роботи алгоритму (рис. 2.8) [22, 33].
Це реалізується помощью іншого масиву, довжина которого дорівнює числу помітніх крапок по осі x у пространстве зображення. Цей масив містіть найменші значення y для шкірного значення x. Алгоритм тепер становится таким: если на поточній площіні при деякім заданому значенні x відповідне значення y на крівій более максимуму або менше мінімуму по y для всіх попередніх кривих при цьом x, то поточна крива видима. У противному випадка вон невидима (рис. 2.8). У викладеня алгорітмі передбачається, что значення Функції, тобто y , известно для шкірного значення x в пространстве зображення.
Однак если для шкірного значення x нельзя вказаті (обчісліті) відповідне Йому значення у , ті Неможливо підтрімуваті масивов верхніх и нижніх плаваючих обріїв.
У такому випадка вікорістається лінійна інтерполяція значень у между відомімі значення для того, щоб заповнити масив верхніх и нижніх плаваючих обріїв, як показано на схемі (рис 2.9). Если відімість крівої міняється, то метод з такою простою інтерполяцією не дасть коректного результату. Пріпускаючі, что операція по заповненості масівів проводитися после перевіркі відімості, одержуємо, что при переході поточної крівої від видимого до невидимого стану (сегмент АВ на рис. 2....