Моделиране на гравитация и сблъсъци в C# - всичко за ИТ и програмиране
Написано на 24 юни 2013 г.
СЪДЪРЖАНИЕ
Моделирането на движението на обект в среда в реално време с гравитация и ефекти на сблъсък в прости езици за програмиране е трудна задача; изисква добро разбиране на използването на таймери и понякога контрол на потока, така че има различни инструменти за симулация за тази и подобни задачи. Тази статия показва метод за симулиране на движението на три топки в среда с активирана гравитация с помощта на таймер и основни уравнения за движение и сблъсък. Ще видите как топките се сблъскват една с друга и отскачат от стената и можете да контролирате движението им, като промените редица променливи на движение.
Движението на тези топки се контролира в системи за гравитация и сблъсък, като се използват основните уравнения на Нютон за движение и уравнения за сблъсък. Координатите на трите топки се актуализират на всеки 20 милисекунди с таймер, който също прави моментна снимка на това движение.
Обяснение
Преди да анализираме кода, трябва да разгледаме основните уравнения на гравитацията и сблъсъка.
Уравнения на гравитацията и движението:
• Xi: - началната координата на обекта. • Vx: - постоянна скорост, игнорирайки триенето и въздушното съпротивление, които не са взети под внимание при симулацията. Въздухът се счита за постоянно съпротивление, което трябва да се отчита по периоди, така че движението се разделя на различни периоди и за всеки период се изчислява нова координата. • tx: - време.
Трето уравнение на движението:
• g: ускорение на свободно падане.
• Vy: крайна скорост Y. • Vy0: начална скорост Y. • g: гравитационно ускорение.
• Vx0: стара X скорост. • Vx: нова X скорост следкато се вземе предвид съпротивлението на въздуха. • 0,99: - постоянен коефициент, показващ съпротивлението на въздуха.
Сблъсък и съхранен импулс:
Сблъсък: Взаимодействие между две или повече тела, всяко от които влияе много силно на другото за много кратък период от време, телата може дори да не се докоснат.
+ Коментари: • Две тела могат да се движат в противоположни посоки. • Две тела могат да се движат в една и съща посока. • Едното се движи, докато другото е неподвижно. • Силата в момента на сблъсък между две тела може да бъде представена, както е показано на графиката по-долу:
• Ако две или повече тела се сблъскат, тогава сумата от импулсите им преди сблъсъка е равна на сумата от импулсите им след сблъсъка.Формула :
Приемайки същата маса:
Кодът по-долу обяснява тези уравнения в техния контекст.