สารบัญ:

การจำลองระบบสุริยะ: 4 ขั้นตอน
การจำลองระบบสุริยะ: 4 ขั้นตอน

วีดีโอ: การจำลองระบบสุริยะ: 4 ขั้นตอน

วีดีโอ: การจำลองระบบสุริยะ: 4 ขั้นตอน
วีดีโอ: แบบจำลองระบบสุริยะ-ทอเลมี วิทยาศาสตร์ ม.4-6 (โลก และดาราศาสตร์) 2024, กรกฎาคม
Anonim

สำหรับโครงการนี้ ฉันตั้งใจจะสร้างแบบจำลองว่าแรงโน้มถ่วงส่งผลต่อการเคลื่อนที่ของวัตถุดาวเคราะห์ในระบบสุริยะอย่างไร ในวิดีโอด้านบน\ ร่างกายของดวงอาทิตย์จะแสดงด้วยทรงกลมตาข่ายลวด และดาวเคราะห์จะถูกสร้างขึ้นแบบสุ่ม

การเคลื่อนที่ของดาวเคราะห์ขึ้นอยู่กับฟิสิกส์จริง กฎความโน้มถ่วงสากล กฎข้อนี้กำหนดแรงโน้มถ่วงที่กระทำต่อมวลโดยมวลอื่น ในกรณีนี้ ดวงอาทิตย์บนดาวเคราะห์ทั้งหมด ดาวเคราะห์ซึ่งกันและกัน

สำหรับโปรเจ็กต์นี้ ฉันใช้การประมวลผล ซึ่งเป็นสภาพแวดล้อมการเขียนโปรแกรมที่ใช้จาวา ฉันยังใช้ไฟล์ตัวอย่างการประมวลผลที่จำลองแรงโน้มถ่วงของดาวเคราะห์ สิ่งที่คุณต้องมีคือซอฟต์แวร์ประมวลผลและคอมพิวเตอร์

ขั้นตอนที่ 1: การจำลอง 2 มิติ

ฉันเริ่มด้วยการดูวิดีโอเกี่ยวกับวิธีการเขียนโค้ดซึ่ง Dan Shiffman สร้างขึ้นในช่อง YouTube ของเขาที่ชื่อว่า Coding Train (ตอนที่ 1/3) ณ จุดนี้ ฉันคิดว่าฉันจะใช้การเรียกซ้ำเพื่อสร้างระบบสุริยะ คล้ายกับที่ชิฟฟ์แมนใช้แค่กฎฟิสิกส์เท่านั้น

ฉันสร้างวัตถุดาวเคราะห์ที่มี 'ดาวเคราะห์เด็ก' ซึ่งก็มีดาวเคราะห์ 'เด็ก' ด้วย โค้ดสำหรับการจำลองแบบ 2 มิติยังไม่เสร็จสมบูรณ์ เนื่องจากฉันไม่มีวิธีที่ดีในการจำลองแรงโน้มถ่วงของดาวเคราะห์แต่ละดวง ฉันหมุนจากวิธีคิดนี้ไปในทิศทางตามตัวอย่างการประมวลผลแรงดึงดูดในตัว ปัญหาคือฉันต้องคำนวณแรงโน้มถ่วงจากดาวเคราะห์ดวงอื่น ๆ ทั้งหมดบนดาวเคราะห์แต่ละดวง แต่คิดไม่ออกว่าจะดึงข้อมูลของดาวเคราะห์แต่ละดวงได้อย่างไร หลังจากที่ได้เห็นว่าบทช่วยสอนการประมวลผลทำงานอย่างไร ฉันก็รู้ว่าต้องทำอย่างไรโดยใช้ลูปและอาร์เรย์แทน

ขั้นตอนที่ 2: นำไปสู่ 3 มิติ

ฉันเริ่มโปรแกรมใหม่สำหรับการจำลอง 3 มิติโดยใช้โค้ดตัวอย่างสำหรับ Planetary Attraction ที่มาพร้อมกับการประมวลผล ความแตกต่างที่สำคัญคือในชั้นดาวเคราะห์ ซึ่งฉันได้เพิ่มฟังก์ชันแรงดึงดูด ซึ่งคำนวณแรงโน้มถ่วงระหว่างดาวเคราะห์สองดวง สิ่งนี้ทำให้ฉันสามารถจำลองว่าระบบสุริยะของเราทำงานอย่างไร โดยที่ดาวเคราะห์ไม่ได้ดึงดูดแค่ดวงอาทิตย์เท่านั้น แต่ยังดึงดูดดาวเคราะห์ดวงอื่นด้วย

ดาวเคราะห์แต่ละดวงมีลักษณะเฉพาะที่สร้างแบบสุ่ม เช่น มวล รัศมี ความเร็วการโคจรเริ่มต้น ฯลฯ ดาวเคราะห์เป็นทรงกลมแข็ง และดวงอาทิตย์เป็นทรงกลมลวดตาข่าย นอกจากนี้ ตำแหน่งของกล้องจะหมุนไปรอบๆ ตรงกลางหน้าต่าง

ขั้นตอนที่ 3: การใช้ดาวเคราะห์จริง

Image
Image

หลังจากที่ฉันได้กรอบงานสำหรับการจำลอง 3 มิติแล้ว ฉันใช้วิกิพีเดียเพื่อค้นหาข้อมูลดาวเคราะห์จริงสำหรับระบบสุริยะของเรา ฉันสร้างอาร์เรย์ของวัตถุดาวเคราะห์ และป้อนข้อมูลจริง เมื่อฉันทำสิ่งนี้ ฉันต้องลดคุณสมบัติทั้งหมดลง เมื่อฉันทำสิ่งนี้ ฉันควรจะนำค่าจริงมาคูณด้วยปัจจัยหนึ่งเพื่อลดขนาดค่าลง แทนที่จะทำในหน่วยของโลก นั่นคือ ฉันเอาอัตราส่วนของค่าโลกกับค่าของวัตถุอื่น เช่น ดวงอาทิตย์มีมวลมากกว่าโลก 109 เท่า อย่างไรก็ตาม สิ่งนี้ส่งผลให้ขนาดของดาวเคราะห์ดูใหญ่หรือเล็กเกินไป

ขั้นตอนที่ 4: ความคิดและความคิดเห็นสุดท้าย

หากฉันทำงานการจำลองนี้ต่อไป ฉันจะปรับปรุง/ปรับปรุงสองสามสิ่ง:

1. ก่อนอื่น ฉันจะปรับขนาดทุกอย่างให้เท่ากันโดยใช้ตัวคูณมาตราส่วนเดียวกัน จากนั้นเพื่อปรับปรุงทัศนวิสัยของวงโคจร ฉันจะเพิ่มเส้นทางด้านหลังดาวเคราะห์แต่ละดวงเพื่อดูว่าการปฏิวัติแต่ละครั้งเปรียบเทียบกับครั้งก่อนอย่างไร

2. กล้องไม่โต้ตอบ ซึ่งหมายความว่าส่วนหนึ่งของวงโคจรอยู่นอกหน้าจอ "หลังบุคคล" กำลังดูอยู่ มีไลบรารีกล้อง 3 มิติชื่อ Peazy Cam ซึ่งใช้ในตอนที่ 2 ของซีรีส์วิดีโอของ Coding Train ในหัวข้อนี้ ไลบรารีนี้อนุญาตให้ผู้ดูหมุน แพน และซูมกล้องเพื่อให้สามารถติดตามวงโคจรทั้งหมดของดาวเคราะห์ได้

3. ในที่สุด ดาวเคราะห์ต่างๆ ก็ไม่สามารถแยกความแตกต่างออกจากกันได้ ฉันต้องการเพิ่ม 'สกิน' ให้กับดาวเคราะห์แต่ละดวงและดวงอาทิตย์ เพื่อให้ผู้ชมสามารถจดจำโลกและอื่นๆ ได้

แนะนำ: