فهرست مطالب:

شبیه سازی منظومه شمسی: 4 مرحله
شبیه سازی منظومه شمسی: 4 مرحله

تصویری: شبیه سازی منظومه شمسی: 4 مرحله

تصویری: شبیه سازی منظومه شمسی: 4 مرحله
تصویری: شبیه سازی لحظه هولناک برخورد کهکشان راه شیری و آندرومدا که این پدیده احتمالا در 4 میلیارد سال 2024, جولای
Anonim

برای این پروژه ، من سعی کردم شبیه سازی نحوه تأثیر گرانش بر حرکت اجسام سیاره ای در منظومه شمسی را ایجاد کنم. در فیلم بالا / ، بدن خورشید توسط کره مش سیم نشان داده شده و سیارات به طور تصادفی تولید می شوند.

حرکت سیارات بر اساس فیزیک واقعی ، قانون گرانش جهانی است. این قانون نیروی گرانشی اعمال شده بر جرم توسط جرم دیگر را تعریف می کند. در این مورد خورشید در همه سیارات ، و سیارات در یکدیگر.

برای این پروژه از Processing ، محیط برنامه نویسی مبتنی بر جاوا استفاده کردم. من همچنین از فایل مثال Processing که گرانش سیارات را شبیه سازی می کند ، استفاده کردم. تنها چیزی که برای این کار نیاز دارید نرم افزار Processing و یک کامپیوتر است.

مرحله 1: شبیه سازی ابعادی 2

من با مشاهده چند فیلم در مورد نحوه برنامه نویسی که دان شیفمن در کانال YouTube خود ، آموزش برنامه نویسی (قسمت 1/3) ایجاد کرد ، شروع کردم. در این مرحله من فکر کردم که من از بازگشت برای تولید منظومه شمسی استفاده خواهم کرد ، درست مانند کاری که شیفمن فقط با استفاده از قوانین فیزیک انجام می دهد.

من یک شیء سیاره ای ایجاد کردم که دارای "سیاره های بچه" بود ، و به نوبه خود سیاره های "کودک" نیز داشت. کد شبیه سازی دو بعدی به پایان نرسیده است زیرا من روش مناسبی برای شبیه سازی نیروهای گرانشی برای هر سیاره نداشتم. من از این طرز تفکر ، در جهتی بر اساس مثال پردازش داخلی جاذبه گرانشی ، حرکت کردم. مسئله این بود که من نیاز به محاسبه نیروی گرانش از سایر سیارات دیگر در هر سیاره داشتم ، اما نمی توانستم به این فکر کنم که چگونه اطلاعات یک سیاره را به راحتی بکشم. پس از مشاهده نحوه انجام آموزش پردازش ، دقیقاً متوجه شدم که چگونه این کار را با استفاده از حلقه ها و آرایه ها انجام می دهم

مرحله 2: آن را به 3 بعد برسانید

با استفاده از کد مثال برای جذب سیاره که همراه با پردازش است ، برنامه جدیدی را برای شبیه سازی سه بعدی شروع کردم. تفاوت عمده در کلاس سیاره است ، جایی که من یک تابع جاذبه را اضافه کردم ، که نیروی گرانشی بین دو سیاره را محاسبه می کند. این به من این امکان را داد که نحوه عملکرد منظومه شمسی را شبیه سازی کنم ، جایی که سیارات نه تنها به خورشید ، بلکه هر سیاره دیگری نیز جذب نمی شوند.

هر سیاره به طور تصادفی ویژگی هایی مانند جرم ، شعاع ، سرعت مداری اولیه و غیره را ایجاد کرده است. علاوه بر این ، محل دوربین در اطراف مرکز پنجره می چرخد.

مرحله 3: استفاده از سیارات واقعی

Image
Image

بعد از اینکه چارچوب شبیه سازی سه بعدی را پیدا کردم ، از ویکی پدیا برای پیدا کردن داده های واقعی سیاره منظومه شمسی استفاده کردم. آرایه ای از اجسام سیاره ایجاد کردم و داده های واقعی را وارد کردم. وقتی این کار را کردم ، مجبور شدم همه ویژگی ها را مقیاس بندی کنم. وقتی این کار را کردم باید مقادیر واقعی را گرفته و در یک عامل ضرب کنم تا مقادیر را کاهش دهم ، در عوض این کار را در واحدهای زمین انجام دادم. بدین معنا که من نسبت ارزش زمین را به مقدار دیگر اجسام در نظر گرفتم ، به عنوان مثال جرم خورشید 109 برابر جرم زمین بیشتر است. با این حال ، اندازه سیاره ها بسیار بزرگ یا خیلی کوچک به نظر می رسید.

مرحله 4: افکار و نظرات نهایی

اگر بخواهم به کار روی این شبیه سازی ادامه دهم ، چند مورد را اصلاح یا بهبود می دهم:

1. ابتدا همه چیز را به طور یکنواخت با استفاده از همان عامل مقیاس بندی مقیاس بندی می کنم. سپس برای بهبود دید مدارها ، من دنباله ای را در پشت هر سیاره اضافه می کنم تا ببینم هر انقلاب با انقلاب قبلی چگونه مقایسه می شود.

2. دوربین تعاملی نیست ، به این معنی که بخشی از مدارها در خارج از صفحه نمایش هستند ، "در پشت شخص" در حال مشاهده. یک کتابخانه دوربین سه بعدی به نام Peazy Cam وجود دارد که در قسمت 2 سری فیلم های Coding Train در این زمینه استفاده می شود. این کتابخانه به بیننده اجازه می دهد دوربین را بچرخاند ، بچرخاند و زوم کند تا بتواند تمام مدار یک سیاره را دنبال کند.

3. سرانجام ، سیارات در حال حاضر از یکدیگر قابل تشخیص نیستند. من می خواهم به هر سیاره و خورشید "پوسته" اضافه کنم تا بینندگان بتوانند زمین و موارد دیگر را تشخیص دهند.

توصیه شده: