Написать простенький движок на Delphi+OpenGL
Форма созданная стандартными средствами delphi, окошко openGL по размеру формы. Нарисовать систему координат в нулевой точке пространства (изначально оси соответствуют направлениям осей сцены OGL). Каждая ось своего цвета, в положительной части заканчивается конусом. На каждой оси 10 зарубок (5 в положительной части, 5 в отрицательной). Изначально нулевая точка в центре камеры. Сама ось координат остается неподвижной внутри единичного кубика (стандартный размер сцены OpenGL).
Реализовать управление камерой через клавиатуру и мышь:
1. Изменение точки на которую смотрит камера (т.е. +- по трем осям).
2. Изменение угла наклона камеры (+- по трем углам), т.е. камера вращается вокруг точки на которую смотрит. Управление сделать на клавиатуре полностью и частично продублировать на мыши.
3. Приближение и удаление камеры. По клавиатуре и колесику мыши.
4. Справочную кнопку. По нажатию выдается окошко с информацией, с цифрами о том, куда и как смотрит камера (т.е. вывести значения переменных определяющих положение камеры).
5. Предусмотреть кнопку сброса. По нажатию все переменные сбрасываются и камера становится как при запуске.
6. Предусмотреть возможность изменения размеров формы пользователем. При этом изображение по возможности не должно меняться. (допустим если до изменения размеров пользователь видел на экране область от 0 до +0,3 единиц по оси X, то после изменения размеров он должен видеть столько же. если пользователь изменил пропорции окна, то можно захватить чуть большую область по соответствующему измерению).
ВАЖНО:
Использовать параллельную проекцию при работе с камерой!
Углы в переменных мерить в градусах, длины во внутренних единицах (исходя из того что изначально сцена единичная).
Векторы желательно не использовать.
Подробные комментарии в тексте программы, особенно работы со сценой.
Приложить чертеж в качестве пояснения как движется камера и какие переменные за что отвечают и каким кнопками их менять (можно нарисовать от руки, главное что бы было понятно и можно было прикинуть, что увидит пользователь если задаст такие значения переменных), особенно по пункту 6.