Code Every Day 🚀
30 subscribers
687 photos
243 videos
22 files
174 links
Просто для развлечения
Download Telegram
👉 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
👉 Код примера
Для анимации пульсирующей точки
Media is too big
VIEW IN TELEGRAM
День 21: Заметка 1: Падающие шарики

👨‍💻Собрал демо падающих объектов.

👉 Использовал ранее наработанные интерполяторы.
На демо видно, как объекты генерируются рандомно в пределах ширины и высоты панели со случайны радиусом.
Затем вычисляется расстояние, которое они должны пролететь до края панели и применяется bounce интерполятор.

#Arduino
👍1
👉 Код для демо падающих объектов
👍1
Media is too big
VIEW IN TELEGRAM
День 22: Заметка 1: Коллизии для шариков

🤟 Хай, кодерс!

🎯 Так-так-так, катать шарики научился, теперь хотелось бы реализовать коллизии, то есть факт столкновения двух и более шариков в процессе их движения.

👉 Для кружков логика простая: два круга пересекаются, если сумма их радиусов больше расстояние между их центрами.

👉 Вспомним школу: расстояние между точками равно сумме квадратов разниц их координат. Это будем использовать для определения коллизий.

В демо:
👉 реализовано перемещение по экрану (впределах панели) двух шаров
👉 слева сверху есть счетчик столкновений
👉 при столкновении счетчик меняется и меняется цвет шариков

#Arduino
👍1
👨‍💻 Код примера определения коллизий шаров
Media is too big
VIEW IN TELEGRAM
День 23: Заметка 1: ArduinoThreads + Коллизии шариков = 💪

🤔 В прошлом сообщении описал реализацию обработки коллизий при движении шариков. Этот код работает, но могут быть проблемы.

🤔 Дело в том, что вся логика: перемещение шаров, проверка коллизий, отрисовка - все происходит в одном основном потоке. Вычисления коллизий может занимать длительное время, если шариков будет много, ведь надо будет посчитать коллизии каждого шарика с каждым.

🎯 Настало время попробовать многопоточность на Arduino.

Я выделил три потока:
👉 movingThread - отвечает за перемещения шариков на экране, то есть смещение во времени координат шарика с определенной скоростью
👉 collisionSolvingThread - отвечает за просчет коллизий между шариками, если коллизия найдена, то меняет цвет шариков и увеличивает счетик
👉 drawingThread - отвечает за отрисовку всего на экране.

Для наглядности собрал демо, чуть пободрее работает в случае нескольких потоков.
Кажется неплохо.

#Arduino
👍1
Code Every Day 🚀
День 23: Заметка 1: ArduinoThreads + Коллизии шариков = 💪 🤔 В прошлом сообщении описал реализацию обработки коллизий при движении шариков. Этот код работает, но могут быть проблемы. 🤔 Дело в том, что вся логика: перемещение шаров, проверка коллизий, отрисовка…
👉 Я использовал библиотеку для организации работы с потоками ArduinoThreads, она предоставляет простое SDK для работы с потоками, как это выглядит во многих других SDK языков программирования (контроллер может не иметь многопоточности, поэтому это просто эмуляция многопоточности).
👍1
День 24: Заметка 1: Синдром отложенной жизни

🎯 Сегодня хотел бы подсветить такую тему как синдром отложенной жизни.

👉 Этот синдром открыл наш отечественный психолог, изучая жизнь людей, проживающих в суровых условиях.
Суть заключается в том, что люди, склонные к проявлениям этого синдрома, часто живут нереальной жизнью, а идеей об изменениях в будущем.

👉 Например, люди, проживающие в условиях севера, могут мечтать о том, что они скопят денег и переедут на юг. Нужно только потерпеть и подкопить. Но проблема в том, что это может продолжаться очень долго, годами. При этом человек считает, что настоящая жизнь начнется когда-то потом.

👉 Такое на самом деле часто можно встретить, например, начинающий разработчик может размышлять: вот закончу курсы по освоению какой-то технологии и тогда стану гуру, вот тогда только я буду горд за себя, заживу, заработаю миллион.

👉 А настоящая жизнь проходит мимо. Человек не получает радости от текущего момента.
Часто люди не осознают этого.

👉 Еще интересный момент: люди, склонные к синдрому отложенной жизни, часто переоценивают повортный момент в будущем, когда все должно поменяться. Часто образ будущего за днем Х размыт.

🤔 Кто-то критикует идею о существовании синдрома отложенной жизни, говоря, что большие цели нельзя быстро достичь, их в любом случае придется реализовывать на протяжении длительного периода времени.

👆 Я думаю, что все должно быть в меру, то есть ставить большие цели надо, достигать их тоже надо, но это не должно быть главной супер целью жизни. Сделал маленький шаг в направлении цели, переключился на реальную жизнь, и так далее без фанатизма.

#Life
👏1