Indholdsfortegnelse:
- Trin 1: 2 dimensionel simulering
- Trin 2: Tager det til 3 dimensioner
- Trin 3: Brug af rigtige planeter
- Trin 4: Afsluttende tanker og kommentarer
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Til dette projekt satte jeg mig for at skabe en simulering af, hvordan tyngdekraften påvirker planetenes bevægelser i et solsystem. I videoen ovenfor / er sollegemet repræsenteret af trådmasken, og planeterne genereres tilfældigt.
Planeternes bevægelse er baseret på ægte fysik, loven om universel gravitation. Denne lov definerer den tyngdekraft, der udøves på en masse af en anden masse; i dette tilfælde Solen på alle planeterne og planeterne på hinanden.
Til dette projekt brugte jeg Processing, et java -baseret programmeringsmiljø. Jeg brugte også forarbejdningseksempelfilen, der simulerer planets tyngdekraft. Alt hvad du skal bruge til dette er forarbejdningssoftwaren og en computer.
Trin 1: 2 dimensionel simulering
Jeg begyndte med at se nogle videoer om, hvordan man koder dette, som Dan Shiffman oprettede på sin YouTube -kanal, kodningstoget (del 1/3). På dette tidspunkt troede jeg, at jeg ville bruge rekursion til at generere solsystemet, svarende til hvordan Shiffman kun gør ved hjælp af fysikkens love.
Jeg skabte et planetobjekt, der havde 'børneplaner', som igen også havde 'barneplaneter'. Koden til 2D -simuleringen var ikke færdig, fordi jeg ikke havde en god måde at simulere tyngdekræfterne for hver planet. Jeg svingede fra denne tankegang i en retning baseret på det indbyggede bearbejdningseksempel på gravitationsattraktion. Spørgsmålet var, at jeg havde brug for at beregne tyngdekraften fra alle de andre planeter på hver planet, men kunne ikke tænke på, hvordan jeg let kunne trække informationen fra en individuel planet. Efter at have set hvordan Processing -tutorialen gør det, indså jeg præcis, hvordan jeg skulle gøre det ved hjælp af loops og arrays i stedet
Trin 2: Tager det til 3 dimensioner
Ved hjælp af eksempelkoden til Planetary Attraction, der følger med behandling, startede jeg et nyt program til en 3D -simulering. Den største forskel er i klassen Planet, hvor jeg tilføjede en attraktionsfunktion, der beregner tyngdekraften mellem to planeter. Dette tillod mig at simulere, hvordan vores solsystemer fungerer, hvor planeterne ikke bare tiltrækkes af solen, men også af enhver anden planet.
Hver planet har tilfældigt genererede karakteristika, såsom masse, radius, indledende orbitalhastighed osv. Planeterne er solide kugler og solen er en kugle af trådnet. Derudover roterer kamerapositionen omkring midten af vinduet.
Trin 3: Brug af rigtige planeter
Efter at jeg fik rammen for 3D -simuleringen nede, brugte jeg Wikipedia til at finde de faktiske planetdata for vores solsystem. Jeg oprettede en række planetobjekter og indtastede de rigtige data. Da jeg gjorde dette, var jeg nødt til at nedskalere alle egenskaberne. Da jeg gjorde dette, skulle jeg have taget de faktiske værdier og ganget med en faktor for at nedskalere værdierne, i stedet gjorde jeg det i enheder af jorden. Det er jeg tog forholdet Jordens værdi til de andre objekters værdi, for eksempel har solen 109 gange mere masse end Jorden. Dette resulterede imidlertid i, at planternes størrelser så for store eller for små ud.
Trin 4: Afsluttende tanker og kommentarer
Hvis jeg fortsatte med at arbejde med denne simulering, ville jeg forfine/forbedre et par ting:
1. Først ville jeg skalere alt ensartet ved hjælp af den samme skaleringsfaktor. For derefter at forbedre banernes synlighed ville jeg tilføje et spor bag hver planet for at se, hvordan hver revolution kan sammenlignes med den foregående
2. Kameraet er ikke interaktivt, hvilket betyder, at en del af banerne er uden for skærmen, "bag personen" ser. Der er et 3D -kamerabibliotek kaldet Peazy Cam, der bruges på del 2 af kodningstogets videoserie om dette emne. Dette bibliotek giver seeren mulighed for at rotere, panorere og zoome kameraet, så de kunne følge hele en planets kredsløb.
3. Endelig kan planeterne i øjeblikket ikke skelnes fra hinanden. Jeg vil gerne tilføje 'skind' til hver planet og Solen, så seerne kan genkende Jorden og sådan.
Anbefalede:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)