OpenGL + Delphi. Вывести массив на экран.
Необходимо разработать программу для вывода на экран массива точек kubik.
Точка = record
Visible:Boolean;
Color:byte;
End;
Kubik : array [0…maxz, 0... maxy, 0…maxx] of точка;
Последовательность координат (z,y,x).
По каждой оси есть шаг dx (dy, dz) и стартовое значение stx (sty, stz), типа real. Считается, что координаты текущей точки равны (stx + x * dx; sty + y * dy; stz + z * dz).
Составляющие RGB каждого цвета хранятся в массиве и сопоставляются с полем color.
Есть ссылка на объект, на котором можно по рисовать (форма, созданная конструктором). Надо написать программу, которая бы выводила через OpenGL массив kubik на экран. Режимов вывода должно быть 2:
1.Кубический. В виде набора кубиков, visible – виден кубик или нет, color – цвет этого кубика. И так весь массив. Между кубиками оставить маленький зазорчик.
2.Сеточный. Точка связана с 6 соседями прямыми. Если точка не видна, то эти связи и сама точка не отображаются. Если видна то точка отображается, а связи есть при условии, что сосед по связи тоже виден.
Сцена должна быть масштабирована на всю сцену, но не быть больше и не обрезаться при выводе (с учетом прокрутки). Сцену можно вращать мышью (щелчек и сцена начинает вращаться за движениями мыши) и кнопкам (на экране поверх сцены и клавиатуре).
Так же должны отображаться оси координат в районе нуля, но не ноль (чуть отступить, что бы не сливалось). Ось должна быть с рисками (в абсолютных координатах) и заканчиваться стрелочкой. Интервалы рисок должны быть круглыми величинами (хотя бы постараться). Так же ось должна быть подписана строкой с размерностью, заданной отдельно (например: ”мм”). Риски так же подписываются, но что бы не сливалось (обязательно подписать ноль-точку). Надписи должны быть на рус языке.
Освещение должно работать, так что бы можно было четко посмотреть на то, что построилось и вращаться, так что бы было видно. Свет должен давать полутона, в результате кубики не должны сливаться.
Писать на D7, без доп. компонентов (OpenGL + glut если надо), форму создавать конструктором, комментарии к исходнику писать обязательно.