C#: Уроки C# – Анимация в Windows Forms с амплитудой - видео HD

C#: Уроки C# – Анимация в Windows Forms с амплитудой - видео
00:19:01
Обнаружено блокирование рекламы на сайте

Для существования нашего сайта необходим показ рекламы. Просим отнестись с пониманием и добавить сайт в список исключений вашей программы для блокировки рекламы (AdBlock и другие).

12n.ru 18776 роликов

RSS
Black Dream
13:04
+9
Несколько типов анимаций:
//простая линейная анимация — без замедления, без ускорения
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);
}
Источник:
Anatolii Navrockiy
15:45
+3
Можно использовать функцию косинуса для плавного разгона и плавного останова движения. Такой метод позволяет задать инерцию объекту и максимально его оживить
Ярослав Король
16:43
+2
Большое спасибо лайфхак, раньше использовал таймер, и без амплитуды, но это горздо красивее и в тоже время проще

Хотелось бы узнать ещё лайфхак, как реализовать многостраничность на одной форме )))
Fhhv Gggh
17:46
+1
Христ привет помню ты делал видео про драгндроп с переносом файлов, вопрос можно ли из формы вытащить файл как из папки держа файл мышкой?
Fhhv Gggh
17:47
+1
эх были бы у винформ нормальные тени для контролов можно было бы вообще не обращать внимание на wpf и xaml
Влад Foton
17:51
+1
Подача материала как всегда на высоте!!!
Костя Атоженко
20:02
+1
Я только хочу начать учиться.Пытался и раньше но у меня не получалось ведь было всё очень сложно.И вот нашел я этот курс стоит ли тратить своё время на этот курс?
Никита Ефимов
21:59
+1
Спасибо! А Win10Tweaker это winforms или wpf?
Dex Mask
22:58
+1
я: — когда уже новые уроки по C#
Христ через полгода: — ИИИИ бац бац бац бац бац бац бац бац
я: — а теперь я не успеваю за ним)))
Спасибо большое за уроки!)))) очень помогают
Хасан Джумашов
06:36
+1
Здравствуйте для начинающих программирования c# windows forms какой книги рекомендуете заранее спасибо.

Новости

«СёрчИнформ FileAuditor» расширил контроль файловых серверов на Linux «СёрчИнформ SIEM» интегрирована с почтовым сервером RuPost Рынок DLP-систем в Центральной Азии: как законы о суверенитете данных стимулируют спрос на локальные решения «СёрчИнформ КИБ» расширил возможности «открытого контроля» для ПК на Linux «РИКИТЛАБ» представила новую модель техподдержки ИТ-инфраструктуры промышленных предприятий

«СёрчИнформ FileAuditor» расширил контроль файловых серверов на Linux


4 часа назад
«СёрчИнформ FileAuditor» расширил контроль файловых серверов на Linux
«СёрчИнформ FileAuditor» расширил контроль файловых серверов на Linux
«СёрчИнформ SIEM» интегрирована с почтовым сервером RuPost
«СёрчИнформ SIEM» интегрирована с почтовым сервером RuPost
Рынок DLP-систем в Центральной Азии: как законы о суверенитете данных стимулируют спрос на локальные решения
Рынок DLP-систем в Центральной Азии: как законы о суверенитете данных стимулируют спрос на локальные решения
«СёрчИнформ КИБ» расширил возможности «открытого контроля» для ПК на Linux
«СёрчИнформ КИБ» расширил возможности «открытого контроля» для ПК на Linux
«РИКИТЛАБ» представила новую модель техподдержки ИТ-инфраструктуры промышленных предприятий
«РИКИТЛАБ» представила новую модель техподдержки ИТ-инфраструктуры промышленных предприятий