Mundarija:

Quyosh sistemasini simulyatsiya qilish: 4 qadam
Quyosh sistemasini simulyatsiya qilish: 4 qadam

Video: Quyosh sistemasini simulyatsiya qilish: 4 qadam

Video: Quyosh sistemasini simulyatsiya qilish: 4 qadam
Video: ЕР ДУМАЛОҚ ЭМАС - "БИЗНИ АЛДАШИБДИ" - YER DUMALOQ EMAS - "BIZNI ALDASHIBDI" 2024, Iyul
Anonim

Ushbu loyiha uchun men tortishish kuchi Quyosh sistemasidagi sayyora jismlarining harakatiga qanday ta'sir qilishini simulyatsiya qilishni boshladim. Yuqoridagi videoda Quyosh tanasi to'rli shar bilan tasvirlangan va sayyoralar tasodifiy hosil qilingan.

Sayyoralarning harakati haqiqiy fizikaga, Umumjahon tortishish qonuniga asoslangan. Bu qonun boshqa massaga ta'sir qiladigan tortishish kuchini belgilaydi; bu holda Quyosh barcha sayyoralarda, bir -birining sayyoralarida.

Ushbu loyiha uchun men Java -ga asoslangan dasturlash muhiti bo'lgan Processing -dan foydalandim. Men, shuningdek, sayyoralarning tortish kuchini taqlid qiluvchi Qayta ishlash misolidan foydalandim. Buning uchun sizga faqat ishlov berish dasturi va kompyuter kerak bo'ladi.

1 -qadam: 2 o'lchovli simulyatsiya

Men Den Shiffman o'zining YouTube kanalida, Kodlash poezdida (1/3 qism) yaratgan kodlashni qanday qilish kerakligi haqida videolarni ko'rishni boshladim. Shu nuqtada men Shiffman faqat fizika qonunlaridan foydalanganidek, Quyosh tizimini yaratish uchun rekursiyadan foydalanaman deb o'yladim.

Men "bolalar sayyoralari" ga ega bo'lgan sayyora ob'ektini yaratdim, ularda ham "bolalar" sayyoralari bor edi. 2D simulyatsiya kodi tugamadi, chunki menda har bir sayyora uchun tortishish kuchlarini simulyatsiya qilishning ajoyib usuli yo'q edi. Men bu fikrlash tarzidan, tortishish jalb qilishning ichki qayta ishlangan misoliga asoslangan yo'nalishda burildim. Gap shundaki, men har bir sayyoradagi boshqa sayyoralarning tortishish kuchini hisoblashim kerak edi, lekin alohida sayyoraning ma'lumotlarini qanday osonlik bilan tortib olish haqida o'ylay olmadim. "Qayta ishlash" qo'llanmasi buni qanday amalga oshirganini ko'rganimdan so'ng, men buning o'rniga looplar va massivlar yordamida qanday qilishni aniq tushundim

2 -qadam: uni 3 o'lchovga olib chiqish

Qayta ishlash bilan birga keladigan sayyoraviy diqqatga sazovorlik kodidan foydalanib, men 3D simulyatsiyasi uchun yangi dasturni ishga tushirdim. Asosiy farq "Planet" sinfida, men ikkita sayyora orasidagi tortishish kuchini hisoblaydigan o'ziga tortish funktsiyasini qo'shdim. Bu menga quyosh sistemalarimizni qanday ishlashini simulyatsiya qilishga imkon berdi, bu erda sayyoralar nafaqat quyoshga, balki boshqa sayyoralarga ham jalb qilinadi.

Har bir sayyora tasodifiy ravishda paydo bo'ladigan xususiyatlarga ega, masalan, massa, radius, orbital tezligi va boshqalar. Sayyoralar qattiq sferalardir va Quyosh simli to'rdir. Bundan tashqari, kamera joylashuvi oynaning markazida aylanadi.

3 -qadam: Haqiqiy sayyoralardan foydalanish

Image
Image

Men 3D simulyatsiya uchun asosni o'rnatganimdan so'ng, Vikipediyadan Quyosh sistemamiz uchun haqiqiy sayyora ma'lumotlarini topdim. Men sayyora ob'ektlarining bir qatorini yaratdim va haqiqiy ma'lumotlarni kiritdim. Men buni qilganimda, men barcha xususiyatlarni qisqartirishim kerak edi. Men buni qilganimda, men haqiqiy qiymatlarni olib, qiymatlarni kamaytirish uchun faktorga ko'paytirishim kerak edi, buning o'rniga men buni Yer birliklarida qildim. Ya'ni men Yerning qiymatini boshqa ob'ektlar qiymatiga nisbatini oldim, masalan, Quyoshning massasi Erdan 109 barobar ko'p. Biroq, bu sayyoralarning o'lchamlari juda katta yoki juda kichik ko'rinishga olib keldi.

4 -qadam: Yakuniy fikrlar va sharhlar

Agar men ushbu simulyatsiya ustida ishlashni davom ettirsam, men bir nechta narsalarni takomillashtirar edim:

1. Birinchidan, men hamma narsani bir xil o'lchov koeffitsienti yordamida bir xil o'lchab olardim. Keyin orbitalarning ko'rinishini yaxshilash uchun men har bir sayyoraning orqasida iz qo'shib, har bir inqilobning avvalgisiga solishtirishini ko'rardim.

2. Kamera interaktiv emas, ya'ni orbitalarning bir qismi ekrandan tashqarida, "odam orqasida" ko'rayotganini bildiradi. Peazy Cam deb nomlangan 3D kamerali kutubxona mavjud, u kodlash poezdining ushbu mavzu bo'yicha video seriyasining 2 -qismida ishlatiladi. Bu kutubxona tomoshabinga kamerani aylantirish, siljitish va kattalashtirish imkonini beradi, shunda ular sayyoraning butun orbitasini kuzatishi mumkin.

3. Nihoyat, hozirda sayyoralar bir -biridan farq qilmaydi. Men har bir sayyoraga va Quyoshga "terilar" qo'shmoqchiman, shunda tomoshabinlar Yerni va boshqalarni taniy oladilar.

Tavsiya: