Denna rapport beskriver utvecklingen av en stelkroppssimulator. Syftet är att föreslå en generell design som tillåter stor flexibilitet i val av algoritmer för implementeringen. Rapporten förutsätter att läsaren är bekant med linjär algebra och objektorienterad programmering. Teoriavsnittet ger en introduktion till rotationer i tre dimensioner, grundläggande fysiska begrepp och fysiksimulering. Den slutgiltiga produkten baseras en objektorienterad modell implementerad i C++. Genom att generalisera de algoritmer som simulatorn använder för att uppdatera kropparnas tillstånd uppnåddes stor flexibilitet. För uppdatering av kropparnas positioner användes Eulers stegmetod tillsammans med Newtons andra lag. Kollisionsdetektionssystemet byggdes som ett utbyggbart system där användaren kan lägga till stöd för nya former på kropparna. I denna första version av simulatorn implementerades stöd för plan, sfärer, capsules och boxar. Impulser genererades i kontaktpunkterna för att förhindra kropparna från att överlappa varandra. Även friktion och restriktionsfunktioner implementerades med hjälp av impulser. För att optimera tidssteget infördes en avaktiveringsregel som stoppar simuleringen för kroppar som är i vila. På så sätt undveks en rad onödiga positionsuppdateringar och kollisionstester.
Identifer | oai:union.ndltd.org:UPSALLA1/oai:DiVA.org:hj-9592 |
Date | January 2009 |
Creators | Luotonen, Adam |
Publisher | Tekniska Högskolan, Högskolan i Jönköping, JTH, Data- och elektroteknik |
Source Sets | DiVA Archive at Upsalla University |
Language | Swedish |
Detected Language | Swedish |
Type | Student thesis, info:eu-repo/semantics/bachelorThesis, text |
Format | application/pdf |
Rights | info:eu-repo/semantics/openAccess |
Page generated in 0.0021 seconds