/ p>
Так як алгоритм перевірки та малювання граней досить універсальний, його можна застосувати для інших фігур. Дана ділянка коду надалі буде застосувати не раз, відповідно має сенс вивести його як деяку окрему процедуру (DrawGran). p> Тепер викликаючи процедуру малювання граней і передаючи в якості параметрів координати точок, обходимо їх за годинниковою стрілкою:
(tet [1], tet [2], tet [3], tet [1], 1); (tet [1], tet [3], tet [4], tet [1], 2) ; (tet [1], tet [4], tet [2], tet [1], 3); (tet [4], tet [3], tet [2], tet [4], 4);
І для куба:
(cub [4], cub [3], cub [2], cub [1], 11); (cub [5], cub [6], cub [7], cub [8], 12) ; (cub [1], cub [2], cub [6], cub [5], 13); (cub [3], cub [4], cub [8], cub [7], 14); ( cub [2], cub [3], cub [7], cub [6], 15); (cub [5], cub [8], cub [4], cub [1], 16);
Побудова складних моделей
Використовуючи дану методику можна побудувати більш складні полігональні моделі, що складаються з більшого числа граней. Рядом труднощів, з якими можна зіткнутися на даному етапі в умовах обраної середовища програмування може бути відсутність більшої палітри кольорів і градієнтів для виділення кожній грані обраним методом, а так само відсутність нормальних засобів роботи з динамічною пам'яттю середовища. До того ж середовище MS-DOS накладає обмеження на розмір ділянки, що виділяється пам'яті. Грань обмежена певним числом точок, щодо яких будується. Використовуючи більше число граней (а відповідно і точок) можлива організація більш складних об'єктів, таких як циліндр. Особливістю циліндра є його структура. Циліндр це геометричне тіло, обмежене циліндричною поверхнею і двома паралельними площинами, що перетинають її. Побудувати циліндр в чистому вигляді неможливо, оскільки необхідно якимсь чином задати координати бічній поверхні, що не має в своєму складі граней і що є ідеально гладкою. Для вирішення даної проблеми циліндр (його бічну поверхню) при побудові розбивають на безліч граней. br/>В
Малюнок 5
Чим більше входить до складу бічних граней, тим більше округлим і плавним буде виглядати циліндр (в даний час існує безліч технологій апаратного згладжування об'єктів). Побудувати циліндр можна, так само, внісши координати в масив. Щоб не вносити вручну безліч даних, можна ввести цикл, згідно якого координати вершин граней будуть розставлені в певній кількості на підставах циліндра. В описаному випадку отримаємо кількість з 10 шт.: p> j: = 1 to 10
Фігура є ідеально опуклою і не має взаімонакладивающіхся граней, що в свою чергу не накладає ніяких обмежень згідно використовуваного алгоритму. Отже, можна скористатися існуючими процедурами виводу на екран. Як і раніше дотримуючись порядок обходу схожим чином відтворюється цикл на побудову кожної грані:
i: = 1 to 9 do (cyl [0], cyl [i], cyl [i +1], cyl [0], i +7); (cyl [21], cyl [10 + i + 1], cyl [10 + i], cyl [21], i +7); (cyl [10 + i], cyl [...