Це буде найпростіша піраміда, що складається з трикутників. Відомо, що вона містить в собі 3 трикутника і 4 вершини. Організовуючи координати вершин у масив, щодо деякої нульової точки отримаємо конструкцію:
tet: array [1 .. 4] of d3d =
((x: 50; y: 80; z: 50),
(x: 50; y: 0; z: 80),
(x: 100; y: 0; z: 0),
(x: 0; y: 0; z: 0));
Аналогічно можна поступити, задаючи координати куба. Суть залишається колишньою, зміниться тільки кількість вершин:
cub: array [1 .. 8] of d3d =
((x: -50; y: -50; z: 50),
(x: -50; y: 50; z: 50),
(x: 50; y: 50; z: 50),
(x: 50; y: -50; z: 50),
(x: -50; y: -50; z: -50),
(x: -50; y: 50; z: -50),
(x: 50; y: 50; z: -50),
(x: 50; y: -50; z: -50));
На даному етапі основні підготовчі операції завершені, і можна приступити безпосередньо до реалізації побудови графіки. У першу чергу необхідно ініціалізувати графічний режим:
: = Detect; (grDriver, grMode,'');: = GraphResult;
На цьому етапі надамо графічній системі можливість самостійно визначити графічний режим. Так як сучасні графічні адаптери, а так само безпосередньо відеодисплей, мають набагато більші можливості, у зв'язку з цим можна припустити, що графічним драйвером буде EGAVGA. Головне при цьому мати необхідний зовнішній модуль для середовища розробки. p> У разі, якщо ініціалізація пройшла успішно, достатньо організувати цикл з постусловіем, виконуючи його поки користувач не натисне на клавішу виходу. У процесі роботи програми, а відповідно основного циклу, повинні виконуватися такі дії:
установка кольору за замовчуванням і отчистка екрану;
поворот фігури на заданий кут, у разі якщо він заданий;
отрисовка поточної проекції фігури;
перевірка дій користувача.
У структуру циклу слід ввести ряд процедур і функцій, що спрощують написання і читаність коду, а так само для виключення переписування однотипних ділянок коду для різних моделей:
ErrCode = grOk then {якщо ініціалізація графічного режиму успішна, то} (0); {установка кольору}
clrscr;; {процедура відтворення фігури} (4000);; {поворот фігур} keypressed then {обробка натискання клавіші користувачем}: = readkey;; codekey of {були натиснуті клавіші відповідають за обертання}
'w': a1: = 4.0; {вкажемо відповідні кути повороту}
'a': a2: = 4.0;
's': a3: = 4.0;
'd': a2: = -4.0;
'1 ': figura: = 1;
'2 ': figura: = 2;; CodeKey = # 27; {вихід із циклу після натискання Esc}
Проаналізуємо і реалізуємо процедуру відтворення об'єкта в цілому. Тут для кожної фігури буде свою ділянку коду, що складається з процедур відтворення конкретних граней. У піраміди маємо 4 грані, у куба 6. Щоб чітко бачити межі об'єкта, кожної призначаємо свій індивідуальний колір. Але для того ...