Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Видалення невидимих ??ліній і поверхонь

Реферат Видалення невидимих ??ліній і поверхонь





.7а. Припускаючи, що операція з заповнення масивів проводиться після перевірки видимості, отримуємо, що при переході поточної кривою від видимого до невидимому стану (сегмент AB на рис. 10.7а), точка (X N + K, Y N + K) оголошується невидимою. Тоді ділянка кривої між точками (XN, YN) і (X N + K, Y N + K) незображується і операція з заповнення масивів не проводиться. Утворюється зазор між поточної і попередньої кривими. Якщо на ділянці поточної кривою відбувається перехід від невидимого стану до видимому (сегмент CD на ріс.10.7а), то точка (X M + K, Y M + K) оголошується видимої, а ділянка кривої між точками (XM, YM) і ( X M + K, Y M + K) змальовується і операція з заповнення масивів проводиться. Тому зображується і невидимий шматок сегмента CD. Крім того, масиви плаваючих горизонтів не міститимуть точних значень y. А це може спричинити за собою додаткові небажані ефекти для наступних кривих.



Отже, необхідно вирішувати задачу про пошук точок перетину сегментів поточної і попередньої кривих.

Існує кілька методів отримання точок перетину кривих. На растрових дисплеях значення координати x можна збільшувати на 1, починаючи з xn або xm (ріс.10.7а). Значення y, відповідне поточному значенням координати x у просторі зображення, виходить шляхом додавання до значення y, відповідному попередньому значенням координати x, вертикального збільшення? Y уздовж заданої кривої. Потім визначається видимість нової точки з координатами (x + 1, у + dy). Якщо це точка видимою, то активується пов'язаний з нею піксел. Якщо невидима, то пиксель не активується, а x збільшується на 1. Цей процес продовжується до тих пір, поки не зустрінеться x n + k або x m + k. Перетин для растрових дисплеїв визначаються викладеним методом з достатньою точністю.

Тепер алгоритм викладається більш формально.

Якщо поточної площині попри деякий заданому значенні x відповідне значення у на кривою більше максимуму менше мінімуму по y всім попередніх кривих при цьому, то поточна крива видимою. В іншому випадку вона невидима. Якщо на ділянці від попереднього (xn) до поточного (x n + k) значення x видимість кривою змінюється, то обчислюється точка перетину (xi). Якщо на ділянці від xn до x n + k сегмент кривої повністю бачимо, то він зображується цілком; якщо він став невидимим, то змальовується фрагмент від xn до xi; якщо він став видимим, то змальовується фрагмент від xi до x n + k. Заповнити масиви верхнього й нижнього плаваючих горизонтів.

Типовий результат роботи алгоритму:



2. Структура програми


Програма в основному складається з трьох основних частин:

. Функція обчислення значення функції в даних точках.

. Процедура розрахунку точок, які необхідно вивести на екран для отримання потрібного зображення.

. Інтерфейсна частина. Т.е та частина програми яка відповідає за правильне спілкування користувача з наданими йому можливостями.

Методи реалізації:

. Процедура обчислення значення отриманої точки по введеним в неї параметрами є, на мій погляд, тривіальної:

Процедура отримання значення функції

Передані параметри: X, Z

На виході: Y

Y=значення функції в точці (x, z)

Наприклад: Х=1, Z=1, F (x)=У=x ^ 2 + z ^ 2

Тоді при заданих значеннях X і Z отримаємо: Y=2.

. Процедура розрахунку точок, які необхідно вивести на екран для отримання потрібного зображення, полягає в тому, що для отримання точок, до координат X, Y, Z застосовується видове перетворення. Т.е точка з тривимірного простору переводиться в двовимірне (шляхом паралельного проектування):

Перед візуалізацією поверхні необхідно застосувати видове перетворення. Поверхня спочатку треба повернути на 30 градусів щодо осі Y, потім на який-небудь кут щодо осі X. Результат проектується на площину Z=0 з центру проекції, що знаходиться у нескінченності на осі + Z.

Т.е спочатку виходять точки в тривимірному просторі, а потім вони проектуються на площину ХОУ таким чином:

Хекрана=Хтрехмерний * cos (alfa) + Zтрехмерний * sin (alfa)

Yекрана=Хтрехмерний * sin (alfa) * sin (beta) + Yтрехмерний * cos (beta) -Zтрехмерний * sin (beta) * cos (alfa)


. Інтерфейсна частина реалізовується згідно потреб користувача в проробляє тієї чи іншої роботи з поверхнею і її заданими межами визначення.


3. Опис програми



Всі можливі настройки можна визначити шляхом натискання на кнопку ...


Назад | сторінка 3 з 5 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Створення програми для обчислення значення функції
  • Реферат на тему: Вектор-функція. Поняття кривої, лінії і поверхні. Диференціальна геометрі ...
  • Реферат на тему: Програма обробки масивів координат точок на мові Сі
  • Реферат на тему: Поняття алгоритму. Обчислення значення функції
  • Реферат на тему: Методи отримання та застосування квантових точок