Система частиц (курсовая)

Необходимо реализовать систему управления частицами на базе статей Система частиц часть 1 и часть 2. Вы можете делать зеленые задачки, если вам прямо совсем сложно дается программирование, и я или Зинаида Андреевна об этом знают. Для вас сложность задания на максимальную оценку не влияет, и при полной реализации задания и полном понимании его работы, будет пятерка. Но обязательно согласуйте выбор задания с преподавателем.

В остальных случаях вы делаете одно или комбинацию желтых/красных задач. За выполнение одного задания максимальная оценка – 4, за выполнение более одного – 5. Прикручивание дополнительного функционала горячо приветствуется.

Результат курсовой:

  • Проект на гитхабе с адекватной историей коммитов, то есть чтобы по истории было видно, что именно вы делали проект, условно 1 коммит в час
  • Отчет по курсовой, пример кину чуть позже. Не забывайте, что в связи с новыми рекомендациями сдачи курсовых, работу не надо будет после печати прошивать, достаточно скрепить скрепкой (она же скобка/и) и положить в мультифору. А еще печать двухстороняя должна быть. В общем, чтобы было удобнее выбрас… ой, в смысле для упрощения утилизации.

  • Если что, то скрепка такая

  • Гифка объемом до 2MB, с работой программы (я делаю с помощью https://www.screentogif.com), потом галерею запилю и будем все вместе любоваться
1

Реализовать эмиттер который перемещается по окружности, а направление вылета частицы меняется по касательной к окружности.

  • добавить trackbar для управлением радиусом окружности
  • и для управлением скоростью движения эмиттера
  • а также для изменения количества частиц за тик
микро-подсказка
2

Реализовать управление направленным эмиттером

  • добавить trackbar для изменения направления эмиттера
  • и для градуса распределения частиц
  • и для изменения скорости вылета частиц
  • а также для изменения количества частиц за тик
  • ну и для продолжительности жизни
  • дополнительно выводить количество активных частиц на данный тик
микро-подсказка
3

Создать птичку из эмиттеров. У птички должны присутствовать

  • Хвост
  • Туловище
  • Крылья
  • Голова

должна быть возможность отключить любой из эмиттеров. Также надо добавить trackbar, двигая который у птички будут раскрываться крылья

микро-подсказка
4

Реализовать телепорт, попадая в радиус действия которой частицы телепортируются в другую указанную точку.

  • По клику левой кнопки мыши перемещать вход телепорта в точку клика
  • По клику правой кнопки мыши перемещать ВЫХОД телепорта в точку клика
  • (необязательно) Добавить TrackBar для управления радиусом телепорта
  • (необязательно) Добавить TrackBar для управления направлением движения частиц на выходе
микро-подсказка
5

Реализовать точки перекрашивания частиц, попадая в радиус действия которой частицы меняют свой цвет на цвет указанный у точки.

  • Реализовать раскрашивание, например, снега падающего с неба
  • добавить trackbar с помощью которого можно перемещать точки перекрашивания
  • (необязательно) добавить trackbar с помощью которого можно менять радиус точек перекрашивания
  • (необязательно) добавить кнопочку которая будет переключать палитру
микро-подсказка
6

Реализовать точку-счетчик частиц, попадая в которую частица умирает, а на точке пишется сколько частиц она уже собрала.

  • при клике мышкой добавлять новый счетчик
  • (необязательно) при клике правой кнопкой мыши, удалять счетчик
  • (необязательно) при увеличении счетчика менять насыщеность цвета счетчика
микро-подсказка
7

Реализовать области-точки попадая в которые частицы отскакивают в соответствии с правилом угол падения равен углу отражения

  • расположить несколько таких областей
  • привязать одну из областей чтобы она следовала за мышкой
  • (дополнительно) при кручении колесиком мышки изменять размер области
микро-подсказка
8

Реализовать точку-область а-ля радар

  • все частицы, попадающие в заданную область должны подсвечиваться как-то цветом
  • в центре необходимо писать количество частиц, оказавшихся в зоне действия радара
  • используя колесико мыши менять размеры области
  • (необязательно) вместо одной надписи с количеством частиц, выводить сколько всего маленьких/средних/больших частиц присутствует в области
микро-подсказка
9

Реализовать debug режим,

  • в котором рисуются вектора скорости каждой частицы
  • добавить кнопочку для остановки симуляции движения частиц
  • добавить кнопочку для пошагового выполнения симуляции
  • добавить trackbar для замедления симуляции
  • при наведении мышки на частицу, выводить ее координаты и значение Life
  • (необязательно) добавить кнопочку которая позволяет выполнять симуляцию в обратную сторону, хотя бы на последние 10 шагов
микро-подсказка