C#: Уроки C# – Анимация в Windows Forms с амплитудой - видео HD
00:19:01
Обнаружено блокирование рекламы на сайте
Для существования нашего сайта необходим показ рекламы. Просим отнестись с пониманием и добавить сайт в список исключений вашей программы для блокировки рекламы (AdBlock и другие).
12n.ru 18165 роликов
1982 просмотра на сайте 12n.ru
Уроки C# – Анимация в Windows Forms с амплитудой - видео.
Донаты ➜ www.donationalerts.com/r/jailbreakvideo
Эксклюзив для спонсоров ➜ www.youtube.com/c/XpucT/community
#Анимация #WindowsForms #Амплитуда
Эксклюзив для спонсоров ➜ www.youtube.com/c/XpucT/community
#Анимация #WindowsForms #Амплитуда
развернуть свернуть
//простая линейная анимация — без замедления, без ускорения
double Linear(double curentTime,double startValue,double changeVaue,double duration)
{
return changeVaue * curentTime / duration + startValue;
}
//квадратичное замедление — ускорение с нулевой скорости
double QuadraticIn(double curentTime,double startValue,double changeVaue,double duration)
{
curentTime /= duration;
return changeVaue * Math.Pow(curentTime,2) + startValue;
}
//квадратичное замедление — ускорение до половины, затем замедление
double QuadraticOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration / 2;
if (curentTime < 1)
{
return changeVaue / 2 * Math.Pow(curentTime, 2) + startValue;
}
return -changeVaue / 2 * (curentTime * (curentTime — 2) — 1) + startValue;
}
//кубическое замедление — ускорение с нулевой скорости
double CubicIn(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration;
return changeVaue * Math.Pow(curentTime, 3) + startValue;
}
//кубическое ослабление — замедление до нулевой скорости
double CubicOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration;
curentTime--;
return changeVaue * (Math.Pow(curentTime, 3) +1) + startValue;
}
//кубическое ослабление — ускорение до половины, затем замедление
double CubicInOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration / 2;
if (curentTime < 1)
{
return changeVaue / 2 * Math.Pow(curentTime, 3) + startValue;
}
curentTime -= 2;
return changeVaue / 2 * (Math.Pow(curentTime, 3) + 2) + startValue;
}
//квартальное ослабления — ускорение с нулевой скорости
double QuarterIn(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration;
return changeVaue * Math.Pow(curentTime, 4) + startValue;
}
//квартальное ослабление — замедление до нулевой скорости
double QuarterOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration;
curentTime--;
return -changeVaue * (Math.Pow(curentTime, 4) — 1) + startValue;
}
//квартальное ослабление — ускорение до половины, затем замедление
double QuarterInOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration / 2;
if (curentTime < 1)
{
return changeVaue / 2 * Math.Pow(curentTime, 4) + startValue;
}
curentTime -= 2;
return -changeVaue / 2 * (Math.Pow(curentTime, 4) — 2) + startValue;
}
//пятикратное ослабление с ускорение с нулевой скорости
double QuinticIn(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration;
return changeVaue * Math.Pow(curentTime, 5) + startValue;
}
//пятикратное ослабление — замедление до нулевой скорости
double QuinticOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration;
curentTime--;
return changeVaue * (Math.Pow(curentTime, 5)+1) + startValue;
}
//пятиступенчатое ослабление — ускорение до половины, затем замедление
double QuinticInOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration / 2;
if (curentTime < 1)
{
return changeVaue / 2 * Math.Pow(curentTime, 5) + startValue;
}
curentTime -= 2;
return changeVaue / 2 * (Math.Pow(curentTime, 5) + 2) + startValue;
}
//синусоидальное замедление — ускорение от нулевой скорости
double SinIn(double curentTime, double startValue, double changeVaue, double duration)
{
return -changeVaue * Math.Cos(curentTime / duration * (Math.PI / 2)) + changeVaue + startValue;
}
//синусоидальное ослабление — замедление до нулевой скорости
double SinOut(double curentTime, double startValue, double changeVaue, double duration)
{
return changeVaue * Math.Sin(curentTime / duration * (Math.PI / 2)) + changeVaue + startValue;
}
//синусоидальное ослабление — ускорение до половины, затем замедление
double SinInOut(double curentTime, double startValue, double changeVaue, double duration)
{
return -changeVaue / 2 * (Math.Cos(Math.PI * curentTime / duration) — 1) + startValue;
}
//экспоненциальное замедление — ускорение с нулевой скорости
double ExpIn(double curentTime, double startValue, double changeVaue, double duration)
{
return changeVaue * Math.Pow(2, 10 * (curentTime / duration — 1)) + startValue;
}
//экспоненциальное ослабление — замедление до нулевой скорости
double ExpOut(double curentTime, double startValue, double changeVaue, double duration)
{
return changeVaue * (-Math.Pow(2, -10 * curentTime / duration) + 1) + startValue;
}
//экспоненциальное замедление — ускорение до половины, затем замедление
double ExpInOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration / 2;
if (curentTime < 1)
{
return changeVaue / 2 * Math.Pow(2, 10 * (curentTime — 1)) + startValue;
}
curentTime--;
return changeVaue / 2 * (-Math.Pow(2, -10 * curentTime) + 2) + startValue;
}
//круговое замедление — ускорение с нулевой скорости
double CirculIn(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration;
return -changeVaue * (Math.Sqrt(1 — Math.Pow(curentTime, 2)) — 1) + startValue;
}
//круговое ослабление — замедление до нулевой скорости
double CirculOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration;
curentTime--;
return changeVaue * Math.Sqrt(1 — Math.Pow(curentTime, 2)) + startValue;
}
//круговое замедление — ускорение до половины, затем замедление
double CirculInOut(double curentTime, double startValue, double changeVaue, double duration)
{
curentTime /= duration / 2;
if (curentTime < 1)
{
return -changeVaue / 2 * (Math.Sqrt(1 — Math.Pow(curentTime, 2)) — 1) + startValue;
}
curentTime -= 2;
return changeVaue / 2 * (Math.Sqrt(1 — Math.Pow(curentTime, 2) + 1) + startValue);
}
Источник:
Хотелось бы узнать ещё лайфхак, как реализовать многостраничность на одной форме )))
Христ через полгода: — ИИИИ бац бац бац бац бац бац бац бац
я: — а теперь я не успеваю за ним)))
Спасибо большое за уроки!)))) очень помогают