Code Every Day 🚀
30 subscribers
687 photos
243 videos
22 files
174 links
Просто для развлечения
Download Telegram
📷 Сила маленьких привычек - Отжимания 💪

Штука полезная, на мой взгляд
🔥1
Media is too big
VIEW IN TELEGRAM
День 16: Заметка 1: Solar System ☀️

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

🤔 Сегодня утром подумал, что нужно срочно запрограммировать солнечную систему.
😎 Вы меня знаете. Сказано-сделано.

🎯 Итак, наша цель сделать анимацию солнечной системы ☀️, что для этого надо:
👉 создаем земной шар, подкрашиваем его в голубой цвет
👉 перемещаем Землю на свою орбиту в начальную точку
👉 создаем Солнце, то есть шар бОльшего радиуса, подкрашиваем в желтый

🤔 Это было easy, скажете вы, и я покорно приму это!
Что дальше? Вот:
👉 начинаем вращать Землю по своей орбите, да, задачка посложнее, тут нужна тригонометрия из школы, но она есть у меня!
👉 иногда подсвечиваем орбиту Земли, чтобы было наглядно, получается неплохо
👉 а что насчет Луны? она есть у меня тоже: создаем Луну рядом с Землей, подкрашиваем, начинаем вращать вокруг Земли и не забываем перемещать ее вслед за Землей, фух, справились, кажись!
👉 🍒 на торте: рандомно в пределах RGB матрицы рисуем звезды - подкрашиваем пиксели.

😎 Занавес.

#Arduino
🔥1
День 17: Заметка 1: Синдром самозванца

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

Это такая штука, которая выражается в неуверенности в своих силах и достижениях, хотя повода для этого не должно быть, так как успехи в работе и учебе есть.

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

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

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

Как с этим бороться?
Я бы сформулировал несколько принципов:
👉 любая работа достойная, и ее кто-то должен делать, даже если вам кажется, что она простая, скорее всего это не так: я 100 раз видел, как люди из другой сферы пытались быстро освоить простые вещи из разработки и 100 раз замечал, как это не получается так легко, как я это предполагал.
👉 осознание этого психологического феномена в какой-то степени приносит спокойствие, рассуждать надо так: ну да, есть ощущение, что где-то что-то недотягиваю, но это не обнуляет весь мой опыт; просто надо составить план по освоению этого материала и работать в своем темпе над этим.
👉 изучения опыта других людей, которых вы считаете крутыми специалистами, общение с ними поможет понять, что все люди и ничего сверхественного нет, все достижимо.
👉 также не нужно зацикливаться на этом, работа есть и ладно, сделал, что должен и на сегодня все, должно быть хобби для отвлечения

Вообщем если подытожить, синдром замозванца - это одна из разновидностей неуверенности в себе, все способы повышения уверенности тоже будут работать.

Ваш накопленный опыт - это уже большое достижение, эта мысль должна быть основой для укрепления веры в себя.

#Life
👍1🔥1
Media is too big
VIEW IN TELEGRAM
День 18: Заметка 1: Moving Objects 2 - более наглядное применение интерполяторов

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

Как-то я показывал применение интерполяторов для движения объектов:
👉 линейный
👉 с ускорением
👉 скачущий
👉 и bubble

В прошлый ряз демо Moving Objects было ненаглядным, в этот раз я доработал его до более привлекательного вида:
👉 шарики двигаются в переделах ширины экрана панели
👉 есть финиш - белая линия, на которой движение шариков должно прекратиться

Детально по шарикам:
👉 1 шарик: применен линейный интерполятор, поэтому он двигается равномерно.
👉 2 шарик: применен интерполятор с ускорением, его скорость нарастает
👉 3 шарик: движется со скачущим интерполятором, поэтому происходит имитация соударения со стенкой и угасающие отскоки
👉 4 шарик: движется с bubble интерполятором, он заходит за финиш и возвращается, амплитуда гаснет, и он останаливается на финише
👉 5 шарик: движется с ускорением до определенного момента и затем с замедлением

📷 Пример на видео

#Arduino
🔥1
День 18: Заметка 2: AccelerateDecelerate интерполятор

На видео выше 5 шарик движется с ускорением до определенного момента и затем с замедлением.
Для этого в файл с интерполяторами дописал новую реализацию, которая использует формулу y = cos((time+1)π)/2+0.5

class AccelerateDecelerateInterpolator : public Interpolator {
public:
int type = Interpolator::TYPE_ACCELERATE_DECELERATE;

float a = 0.5;
float b = 2;

virtual float calculate(double time) {
return cos((time + 1) * 3.14)/b + a;
}
};


#Arduino
👍1
День 18: Заметка 3: Код примера Moving Objects 2

#Arduino
👍1
День 18: Заметка 4: Сувениры на память

👨‍💻 Почти 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
👉 Код примера
Для анимации пульсирующей точки