Code Every Day πŸš€
30 subscribers
687 photos
243 videos
22 files
174 links
ΠŸΡ€ΠΎΡΡ‚ΠΎ для развлСчСния
Download Telegram
πŸ‘‰ Для наглядности 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
πŸ‘‰ Код ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°
Для Π°Π½ΠΈΠΌΠ°Ρ†ΠΈΠΈ ΠΏΡƒΠ»ΡŒΡΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ
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