Задание 1. Построение изображений графическими примитивами
Используя графические примитивы языка программирования JavaScript, построить узнаваемое изображение.
На картинке обязательно должны быть:
- повторяющиеся элементы, построенные с использованием оператора цикла;
- не менее 5 различных графических примитивов (линия, дуга, прямоугольник, кривая, текст);
- использование цвета и заливки;
- фигура, построенная с помощью функции.
Задание 2. Элементарные преобразования на плоскости
Построить изображение простого узнаваемого предмета, используя массив точек, передаваемых в функцию построения этого объекта. При построении объекта по точкам использовать цвета и различные графические примитивы.
Используя кнопки формы реализовать:
- линейное перемещение объекта;
- вращение объекта;
- изменение размера объекта;
- автоматическое масштабирование под размер окна.
Все преобразования производить с изображением, а не с системой координат.
Задание 3. Создание анимации
Используя методы спрайтовой анимации, создать небольшой деморолик, мультик или анимированную картинку. Использовать не менее двух движущихся объектов или анимировать спрайт несколькими кадрами (спрайт отрисовать графическими примитивами самостоятельно, не используя готовые gif-анимации) и придать ему движение. Ролик должен быть циклическим и не прекращаться до принудительной остановки по нажатию на клавишу "Стоп".
Задание 4. Построение кривых заданных параметрическими уравнениями
Используя параметрические уравнения кривых, создать набор собственных графических примитивов и нарисовать с их помощью любое узнаваемое изображение (только собственными примитивами кривых). Использовать цвета и заливку.
Графические примитивы должны содержать функции построения:
- окружности, эллипса или дуги;
- кривых Безье;
- B-сплайна;
- уникального придуманного примитива.
Задание 5. Создание собственной графической библиотеки
Используя лишь функцию установки точки создать набор собственных графических примитивов, построенных в целочисленной арифметике, и нарисовать с их помощью любое узнаваемое изображение.
Графические примитивы должны содержать:
- прямые линии по алгоритму Брезенхема;
- окружность, эллипс или дугу;
- заливку цветом;
- уникальный придуманный примитив.
Задание 6. Алгоритмы вычислительной геометрии
Напишите небольшое игровое приложение, в котором по движущемуся объекту ведется стрельба (случайным образом или мышью). При каждом выстреле алгоритм должен определять попадание в цель или указывать положение промаха относительно движения цели (левее, правее).
Задание 7. Построение 3D-поверхности по формуле
Построить любую поверхность z=F(x,y) из представленных ниже в аксонометрической проекции. При построении использовать алгоритм плавающего горизонта удаления невидимых граней.
Задание 8. Построение 3d объектов
Построить 3d объект и спроецировать его на экран, используя формулы центральной проекции. Реализовать поворот хотя бы по одной из осей системы координат. За дополнительные баллы применить любой алгоритм удаления невидимых граней для придания объекту реалистичности.
Самостоятельная работа
Самостоятельная работа студентов оценивается дополнительными баллами.
Включает в себя написание примеров к лекциям, демосцен, фракталов, статей (статья представляется отдельно в виде HTML-файла и тема согласуется с преподавателем). Код программы размещается на сайте https://codepen.io.