Мазмуну:

Күн системасынын симуляциясы: 4 кадам
Күн системасынын симуляциясы: 4 кадам

Video: Күн системасынын симуляциясы: 4 кадам

Video: Күн системасынын симуляциясы: 4 кадам
Video: Дүние жүзінде Cessna ұшқышы! 🛩🌥🌎 - Geographical Adventures GamePlay 🎮📱 🇰🇿 2024, Июль
Anonim

Бул долбоор үчүн мен тартылуу күчү Күн системасындагы планеталардын денелеринин кыймылына кандай таасир этерин симуляциялоону чечтим. Жогорудагы видеодо / Күндүн денеси зым торчосу менен көрсөтүлгөн жана планеталар туш келди жаратылган.

Планеталардын кыймылы чыныгы физикага, Бүткүл дүйнөлүк тартылуу мыйзамына негизделген. Бул мыйзам башка массага тартылган тартылуу күчүн аныктайт; бул учурда Күн бардык планеталарда, жана бири -бирине планеталар.

Бул долбоор үчүн мен Javaга негизделген программалоо чөйрөсү болгон Processingти колдондум. Мен ошондой эле планеталардын тартылуусун окшоштуруучу Processing мисал файлын колдондум. Бул үчүн сизге иштетүү программасы жана компьютер гана керек болот.

1 -кадам: 2 Өлчөмдүү симуляция

Мен Дэн Шиффман өзүнүн YouTube каналында, Коддоочу Поездде (1/3 бөлүк) жараткан бул кодду кантип жасоо керектиги тууралуу видеолорду көрүүдөн баштадым. Бул жерде мен Күн системасын түзүү үчүн рекурсияны колдоном деп ойлодум, Шиффман физика мыйзамдарын колдонгондой.

Мен "планетанын балдары" болгон планетанын объектин түздүм, алар дагы "бала" планеталарына ээ болушту. 2D симуляциясынын коду бүтө элек, анткени менде ар бир планета үчүн тартылуу күчтөрүн окшоштуруунун сонун жолу жок болчу. Мен гравитациялык тартуунун камтылган кайра иштетүү мисалына негизделген багытта ушул ой жүгүртүүдөн бурулду. Маселе мен ар бир планетанын башка бардык планеталарынан тартылуу күчүн эсептеп чыгышым керек болчу, бирок жеке планетанын маалыматын кантип оңой тартып алууну ойлоно алган жокмун. Кайра иштетүү үйрөткүчү муну кантип кылганын көргөндөн кийин, анын ордуна циклдерди жана массивдерди колдонуп, муну кантип кылууну так түшүндүм

2 -кадам: Аны 3 өлчөмгө жеткирүү

Кайра иштетүү менен келген планетардык тартуунун мисал кодун колдонуп, мен 3D симуляциясы үчүн жаңы программаны баштадым. Негизги айырмачылык - бул планетанын классында, мен эки планетанын ортосундагы тартылуу күчүн эсептеген тартуу функциясын коштум. Бул мага планеталар күнгө эле эмес, башка бардык планеталарга да тартылган биздин Күн системаларыбыздын кантип иштээрин симуляциялоого мүмкүндүк берди.

Ар бир планетанын массасы, радиусу, орбитанын баштапкы ылдамдыгы жана башкалар сыяктуу туш келди жаратылган өзгөчөлүктөрү бар. Мындан тышкары, камеранын жайгашкан жери терезенин борборунда айланат.

3 -кадам: Реалдуу планеталарды колдонуу

Image
Image

Мен 3D симуляциясынын негизин түшүргөндөн кийин, Википедияны колдонуп, биздин Күн системабыздын чыныгы планетардык маалыматтарын таптым. Мен планетанын объекттеринин массивин түздүм жана реалдуу маалыматтарды киргиздим. Мен муну кылганда, мен бардык мүнөздөмөлөрдү кыскартууга туура келди. Мен муну кылганда, мен чыныгы баалуулуктарды алып, баалуулуктарды азайтуу үчүн факторго көбөйтүшүм керек болчу, анын ордуна мен муну Жердин бирдиктери менен жасадым. Башкача айтканда, мен Жердин наркынын башка объектилердин маанисине болгон катышын алдым, мисалы, Күндүн массасы Жерден 109 эсе көп. Бирок бул планеталардын өлчөмдөрү өтө чоң же өтө кичине болуп көрүнүшүнө алып келди.

4 -кадам: Акыркы ойлор жана комментарийлер

Эгерде мен бул симуляциянын үстүндө иштөөнү уланта турган болсом, анда мен бир нече нерсени жакшыртмакмын:

1. Биринчиден, мен бардыгын бирдей масштабдагы фактордун жардамы менен масштабдаштырмакмын. Андан кийин орбиталардын көрүнүүсүн жакшыртуу үчүн, мен ар бир революциянын мурунку революцияга салыштырмасын көрүү үчүн ар бир планетанын артына из кошмокмун.

2. Камера интерактивдүү эмес, башкача айтканда, орбиталардын бир бөлүгү экранда эмес, "адамдын артында" көрүп жатат. Peazy Cam аттуу 3D камералуу китепкана бар, ал ушул темада Coding Trainтин видео сериясынын 2 -бөлүгүндө колдонулат. Бул китепкана көрүүчүнү камераны айлантууга, панорамалоого жана чоңойтууга мүмкүнчүлүк берет, ошондо алар планетанын бардык орбитасын ээрчип кете алышат.

3. Акырында, учурда планеталар бири -биринен айырмаланбайт. Көрүүчүлөр Жерди жана башкаларды таанышы үчүн, мен ар бир планетага жана Күнгө "терилерди" кошкум келет.

Сунушталууда: