Техническое задание: Анимация динамического перехода конуса
Описание задачи
Разработать анимацию перехода трёхмерного конуса из одного пространственного положения в другое. В основе анимации лежит метод сферической линейной интерполяции (Slerp) кватернионов. Начальная и конечная ориентация задаётся с помощью трёхмерного вектора, определяющего направление оси конуса. Все промежуточные положения должны отображаться на экране.
Основные требования
- Использовать библиотеку WebGL для рендеринга трёхмерной графики.
- Работать с библиотекой glMatrix (объект
mat4) для построения матриц преобразований и камеры. - Применить метод
quat.slerp для интерполяции кватернионов. - Визуализировать фигуры минимум двумя способами (на выбор): каркасная модель (wireframe) или тонирование с освещением (плоские заливки (flat shading) исключены).
- Обязательно показать начальное, конечное и все промежуточные положения конуса. Также необходимо отображать точку или ось, относительно которой выполняются преобразования.
- Геометрические размеры конуса (радиус, высота) и размер аппроксимационной сетки (количество сегментов по окружности и по высоте) должны задаваться внутри программы и быть легко изменяемыми.
Структура проекта
Готовое решение должно включать следующие файлы:
- Один HTML-файл (
.html) для инициализации страницы и управления процессом. - Один JavaScript-файл (
.js) с логикой построения конуса, анимации и вызовом slerp. - Два файла шейдеров: вершинный шейдер (
.vs) и фрагментный шейдер (.fs).
Срок выполнения
Работа должна быть выполнена в течение трёх дней с момента утверждения.