Quỹ đạo Kepler: có được vị trí trên quỹ đạo theo thời gian


8

Tôi đang phát triển một trò chơi liên quan đến mô phỏng không gian và tôi gặp một số khó khăn khi thực hiện chuyển động của các ngôi sao nhị phân, như thế này:

Sao nhị phân

Hai ngôi sao quay quanh tâm của chúng và quỹ đạo của chúng là hình elip.

Về cơ bản tôi biết cách xác định vận tốc góc tại bất kỳ vị trí nào, nhưng không phải là tốc độ góc theo thời gian. Vì vậy, đối với một góc đã cho, tôi có thể dễ dàng tính toán vị trí của các ngôi sao (xem http://en.wikipedia.org/wiki/Orbit_equation ).

Tôi muốn có được vị trí ngôi sao theo thời gian. Các phương trình tham số của hình elip hoạt động nhưng không cho tốc độ chính xác : { X(t) = a×cos(t) ; Y(t) = b×sin(t) }.

Có thể, và làm thế nào nó có thể được thực hiện?


Nó có thể được thực hiện bằng cách mô phỏng trọng lực khá đơn giản (thêm một lực phụ thuộc vào khối lượng * sqrt (khoảng cách) và làm vật lý đơn giản)
Elva

7
Không đừng làm vật lý đơn giản! Các quỹ đạo không ổn định về số lượng và mọi thứ sẽ nổ tung hoặc nổ tung.
Jonas Bötel

Câu trả lời:



0

Bạn dường như đã có đủ dữ liệu để tạo ra hình ảnh động tiện dụng ở trên. Mô phỏng của bạn có thể cần độ chính xác cao hơn giải pháp của tôi cung cấp:

Đối với mỗi khung hình động của bạn ở trên, hãy ghi lại vị trí pixel của tâm của mỗi ngôi sao. Nhập các giá trị này vào hai mảng trong chương trình của bạn. Trong một thời gian nhất định, tìm bốn mục liên tiếp tương ứng trong mỗi mảng và thực hiện bộ lọc nhị phân trên chúng để tạo vị trí của mỗi ngôi sao.


Trên thực tế, hoạt hình là từ Wikipedia.
Artefact2

0

Tôi đã tìm thấy tích hợp số là cách dễ nhất. Luật bình phương nghịch đảo (F = GM / r ^ 2) hoạt động khá tốt. Và Runge Kutta, thứ tự bốn thường được gọi là RK4 rất dễ thực hiện và hoạt động tốt. Bạn bắt đầu bằng cách viết một thường trình lấy đạo hàm thời gian thứ nhất, ví dụ cho một đối tượng trong không gian 2D, bạn có tọa độ X và Y, và vận tốc X và Y. Đầu ra là đạo hàm thời gian, đạo hàm thời gian của vị trí chỉ đơn giản là vận tốc, do đó một nửa chỉ là sao chép các giá trị, sau đó gia tốc chỉ là lực hấp dẫn. Sau đó, bạn làm theo đơn thuốc Runge Kutta. Lỗi của một bước thời gian duy nhất tỷ lệ thuận với bước thời gian đến sức mạnh thứ năm. Bạn điều chỉnh bước thời gian để làm cho kết quả đủ chính xác. Một lợi thế của tích hợp số là nếu bạn muốn chơi với hệ thống để làm cho nó thú vị hơn,


Vâng, vâng, đây là một giải pháp, nhưng chương trình của tôi không phải là mô phỏng vật lý trong thời gian thực. Nó là rời rạc, và tôi không thể cập nhật mọi thứ ở mọi nơi. Đây là lý do tại sao vị trí như một chức năng của thời gian là tốt đẹp: không cần tính toán, luôn luôn chính xác cho dù các vị trí được cập nhật thường xuyên như thế nào.
Artefact2
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.