สารบัญ:
- ขั้นตอนที่ 1: การจำลอง 2 มิติ
- ขั้นตอนที่ 2: นำไปสู่ 3 มิติ
- ขั้นตอนที่ 3: การใช้ดาวเคราะห์จริง
- ขั้นตอนที่ 4: ความคิดและความคิดเห็นสุดท้าย
วีดีโอ: การจำลองระบบสุริยะ: 4 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
สำหรับโครงการนี้ ฉันตั้งใจจะสร้างแบบจำลองว่าแรงโน้มถ่วงส่งผลต่อการเคลื่อนที่ของวัตถุดาวเคราะห์ในระบบสุริยะอย่างไร ในวิดีโอด้านบน\ ร่างกายของดวงอาทิตย์จะแสดงด้วยทรงกลมตาข่ายลวด และดาวเคราะห์จะถูกสร้างขึ้นแบบสุ่ม
การเคลื่อนที่ของดาวเคราะห์ขึ้นอยู่กับฟิสิกส์จริง กฎความโน้มถ่วงสากล กฎข้อนี้กำหนดแรงโน้มถ่วงที่กระทำต่อมวลโดยมวลอื่น ในกรณีนี้ ดวงอาทิตย์บนดาวเคราะห์ทั้งหมด ดาวเคราะห์ซึ่งกันและกัน
สำหรับโปรเจ็กต์นี้ ฉันใช้การประมวลผล ซึ่งเป็นสภาพแวดล้อมการเขียนโปรแกรมที่ใช้จาวา ฉันยังใช้ไฟล์ตัวอย่างการประมวลผลที่จำลองแรงโน้มถ่วงของดาวเคราะห์ สิ่งที่คุณต้องมีคือซอฟต์แวร์ประมวลผลและคอมพิวเตอร์
ขั้นตอนที่ 1: การจำลอง 2 มิติ
ฉันเริ่มด้วยการดูวิดีโอเกี่ยวกับวิธีการเขียนโค้ดซึ่ง Dan Shiffman สร้างขึ้นในช่อง YouTube ของเขาที่ชื่อว่า Coding Train (ตอนที่ 1/3) ณ จุดนี้ ฉันคิดว่าฉันจะใช้การเรียกซ้ำเพื่อสร้างระบบสุริยะ คล้ายกับที่ชิฟฟ์แมนใช้แค่กฎฟิสิกส์เท่านั้น
ฉันสร้างวัตถุดาวเคราะห์ที่มี 'ดาวเคราะห์เด็ก' ซึ่งก็มีดาวเคราะห์ 'เด็ก' ด้วย โค้ดสำหรับการจำลองแบบ 2 มิติยังไม่เสร็จสมบูรณ์ เนื่องจากฉันไม่มีวิธีที่ดีในการจำลองแรงโน้มถ่วงของดาวเคราะห์แต่ละดวง ฉันหมุนจากวิธีคิดนี้ไปในทิศทางตามตัวอย่างการประมวลผลแรงดึงดูดในตัว ปัญหาคือฉันต้องคำนวณแรงโน้มถ่วงจากดาวเคราะห์ดวงอื่น ๆ ทั้งหมดบนดาวเคราะห์แต่ละดวง แต่คิดไม่ออกว่าจะดึงข้อมูลของดาวเคราะห์แต่ละดวงได้อย่างไร หลังจากที่ได้เห็นว่าบทช่วยสอนการประมวลผลทำงานอย่างไร ฉันก็รู้ว่าต้องทำอย่างไรโดยใช้ลูปและอาร์เรย์แทน
ขั้นตอนที่ 2: นำไปสู่ 3 มิติ
ฉันเริ่มโปรแกรมใหม่สำหรับการจำลอง 3 มิติโดยใช้โค้ดตัวอย่างสำหรับ Planetary Attraction ที่มาพร้อมกับการประมวลผล ความแตกต่างที่สำคัญคือในชั้นดาวเคราะห์ ซึ่งฉันได้เพิ่มฟังก์ชันแรงดึงดูด ซึ่งคำนวณแรงโน้มถ่วงระหว่างดาวเคราะห์สองดวง สิ่งนี้ทำให้ฉันสามารถจำลองว่าระบบสุริยะของเราทำงานอย่างไร โดยที่ดาวเคราะห์ไม่ได้ดึงดูดแค่ดวงอาทิตย์เท่านั้น แต่ยังดึงดูดดาวเคราะห์ดวงอื่นด้วย
ดาวเคราะห์แต่ละดวงมีลักษณะเฉพาะที่สร้างแบบสุ่ม เช่น มวล รัศมี ความเร็วการโคจรเริ่มต้น ฯลฯ ดาวเคราะห์เป็นทรงกลมแข็ง และดวงอาทิตย์เป็นทรงกลมลวดตาข่าย นอกจากนี้ ตำแหน่งของกล้องจะหมุนไปรอบๆ ตรงกลางหน้าต่าง
ขั้นตอนที่ 3: การใช้ดาวเคราะห์จริง
หลังจากที่ฉันได้กรอบงานสำหรับการจำลอง 3 มิติแล้ว ฉันใช้วิกิพีเดียเพื่อค้นหาข้อมูลดาวเคราะห์จริงสำหรับระบบสุริยะของเรา ฉันสร้างอาร์เรย์ของวัตถุดาวเคราะห์ และป้อนข้อมูลจริง เมื่อฉันทำสิ่งนี้ ฉันต้องลดคุณสมบัติทั้งหมดลง เมื่อฉันทำสิ่งนี้ ฉันควรจะนำค่าจริงมาคูณด้วยปัจจัยหนึ่งเพื่อลดขนาดค่าลง แทนที่จะทำในหน่วยของโลก นั่นคือ ฉันเอาอัตราส่วนของค่าโลกกับค่าของวัตถุอื่น เช่น ดวงอาทิตย์มีมวลมากกว่าโลก 109 เท่า อย่างไรก็ตาม สิ่งนี้ส่งผลให้ขนาดของดาวเคราะห์ดูใหญ่หรือเล็กเกินไป
ขั้นตอนที่ 4: ความคิดและความคิดเห็นสุดท้าย
หากฉันทำงานการจำลองนี้ต่อไป ฉันจะปรับปรุง/ปรับปรุงสองสามสิ่ง:
1. ก่อนอื่น ฉันจะปรับขนาดทุกอย่างให้เท่ากันโดยใช้ตัวคูณมาตราส่วนเดียวกัน จากนั้นเพื่อปรับปรุงทัศนวิสัยของวงโคจร ฉันจะเพิ่มเส้นทางด้านหลังดาวเคราะห์แต่ละดวงเพื่อดูว่าการปฏิวัติแต่ละครั้งเปรียบเทียบกับครั้งก่อนอย่างไร
2. กล้องไม่โต้ตอบ ซึ่งหมายความว่าส่วนหนึ่งของวงโคจรอยู่นอกหน้าจอ "หลังบุคคล" กำลังดูอยู่ มีไลบรารีกล้อง 3 มิติชื่อ Peazy Cam ซึ่งใช้ในตอนที่ 2 ของซีรีส์วิดีโอของ Coding Train ในหัวข้อนี้ ไลบรารีนี้อนุญาตให้ผู้ดูหมุน แพน และซูมกล้องเพื่อให้สามารถติดตามวงโคจรทั้งหมดของดาวเคราะห์ได้
3. ในที่สุด ดาวเคราะห์ต่างๆ ก็ไม่สามารถแยกความแตกต่างออกจากกันได้ ฉันต้องการเพิ่ม 'สกิน' ให้กับดาวเคราะห์แต่ละดวงและดวงอาทิตย์ เพื่อให้ผู้ชมสามารถจดจำโลกและอื่นๆ ได้
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง