День 18: Заметка 4: Сувениры на память
👨💻 Почти
👉 Проект работает и по сей день. Тот, кто живет в
👍 Прошло столько времени, а сувенир до сих пор напоминает о тех интересных временах, товарищах, с которыми вместе работали.
🤔 Примерно в
#Life
👨💻 Почти
10 лет назад мне довелось принимать участие в одном из крупных проектов (в те времена проект только стартовал и было не понятно, что станет таким каким стал). 👉 Проект работает и по сей день. Тот, кто живет в
Мск, возможно, о нем даже слышал. Ну, не суть. 👍 Прошло столько времени, а сувенир до сих пор напоминает о тех интересных временах, товарищах, с которыми вместе работали.
🤔 Примерно в
2015 году (если не ошибаюсь) у меня появился этот сувенир, тогда не предполагал, что в 2023 году я о нем напишу здесь. #Life
👍1
Media is too big
VIEW IN TELEGRAM
День 19: Заметка 1: Продолжаю двигать кружочки
Реализовал парочку интерполяторов.
👉
👉
Наглядно видно на демо.
Реализовал парочку интерполяторов.
👉
Cycle - циклический, позволяет повторять несколько раз цикл перемещения, описывается формулой y = sin (2π × C × t)👉
OvershootInterpolator - интерполятор с перерегулированием, описывается формулой y = (T + 1) × (t − 1)^3 + T × (t − 1)^2 + 1; позволяет реализовать движение с замедлением и в конечной точке небольшой отскок.Наглядно видно на демо.
🔥1
👉 Для наглядности cycle интерполятор
class CycleInterpolator : public Interpolator {
public:
int type = Interpolator::TYPE_CYCLE;
float c = 2;
virtual float calculate(double time) {
return sin(c * 3.14 * time);
}
};
👍1
👉 Overshooting интерполятор
class OvershootingInterpolator : public Interpolator {
public:
int type = Interpolator::TYPE_CYCLE;
float c = 0.5;
virtual float calculate(double time) {
return (c + 1) * pow(time - 1, 3) + c * pow(time - 1, 2) + 1;
}
};
👍1
Media is too big
VIEW IN TELEGRAM
День 20: Заметка 1: Анимация пульсации
Сегодня решил набросать пример пульсирующей точки.
Код анимации прост и состоит из двух частей:
👉 сначала необходимо последовательно расширять круг до целевого радиуса
👉 затем наоборот круг сворачивается обратно в точку.
На каждом цикле отрисовки радиус увеличивается (или уменьшается) на 1 единицу (или с определенным шагом). При уменьшении нужно еще затирать ранее нарисованные окружности, чтобы создавался эффект уменьшения круга.
📷 Демо на видео.
#Arduino
Сегодня решил набросать пример пульсирующей точки.
Код анимации прост и состоит из двух частей:
👉 сначала необходимо последовательно расширять круг до целевого радиуса
👉 затем наоборот круг сворачивается обратно в точку.
На каждом цикле отрисовки радиус увеличивается (или уменьшается) на 1 единицу (или с определенным шагом). При уменьшении нужно еще затирать ранее нарисованные окружности, чтобы создавался эффект уменьшения круга.
📷 Демо на видео.
#Arduino
👍1
Media is too big
VIEW IN TELEGRAM
День 21: Заметка 1: Падающие шарики
👨💻Собрал демо падающих объектов.
👉 Использовал ранее наработанные интерполяторы.
На демо видно, как объекты генерируются рандомно в пределах ширины и высоты панели со случайны радиусом.
Затем вычисляется расстояние, которое они должны пролететь до края панели и применяется bounce интерполятор.
#Arduino
👨💻Собрал демо падающих объектов.
👉 Использовал ранее наработанные интерполяторы.
На демо видно, как объекты генерируются рандомно в пределах ширины и высоты панели со случайны радиусом.
Затем вычисляется расстояние, которое они должны пролететь до края панели и применяется bounce интерполятор.
#Arduino
👍1
Media is too big
VIEW IN TELEGRAM
День 22: Заметка 1: Коллизии для шариков
🤟 Хай, кодерс!
🎯 Так-так-так, катать шарики научился, теперь хотелось бы реализовать коллизии, то есть факт столкновения двух и более шариков в процессе их движения.
👉 Для кружков логика простая: два круга пересекаются, если сумма их радиусов больше расстояние между их центрами.
👉 Вспомним школу: расстояние между точками равно сумме квадратов разниц их координат. Это будем использовать для определения коллизий.
В демо:
👉 реализовано перемещение по экрану (впределах панели) двух шаров
👉 слева сверху есть счетчик столкновений
👉 при столкновении счетчик меняется и меняется цвет шариков
#Arduino
🤟 Хай, кодерс!
🎯 Так-так-так, катать шарики научился, теперь хотелось бы реализовать коллизии, то есть факт столкновения двух и более шариков в процессе их движения.
👉 Для кружков логика простая: два круга пересекаются, если сумма их радиусов больше расстояние между их центрами.
👉 Вспомним школу: расстояние между точками равно сумме квадратов разниц их координат. Это будем использовать для определения коллизий.
В демо:
👉 реализовано перемещение по экрану (впределах панели) двух шаров
👉 слева сверху есть счетчик столкновений
👉 при столкновении счетчик меняется и меняется цвет шариков
#Arduino
👍1