Skip to content

Software which automatically calculates the orbits and trajectories of revolving bodies by solving their matrix functions

Notifications You must be signed in to change notification settings

DDeconti/OrbiTrack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OrbiTrack

Jack Blair and Daniel DeConti TJHSST - Matrix Algebra Demonstration Project May 17th, 2022

Demonstration Video

Introduction

Kepler's First Law establishes that all planetary orbits and trajectories are conic sections or can be approximated as such. For a standard two-body system in which a satellite is far less massive than its parent object, this conic section takes the form of an ellipse, when the orbital velocity is less than the object's escape velocity, a parabola when orbital velocity equals escape velocity, and a hyperbola when orbital velocity exceeds escape velocity.

The equations for such conic sections can be calculated through matrix algebra operations, specifically by either finding the determinant of a 6x6 matrix containing the variables for the general form of a conic section:

The equations for such conic sections canbe calculated through matrix algebra operations, specifically by either finding the determinant of a 6x6 matrix containing the variables for the general form of a conic section:

Ax^2 + Bxy + Cy^2 + Dx + Ey + F = 0

or by taking the null space of a 5x6 matrix of the coordinates augmented with a 5x1 matrix of 1's.

[A, B, C, D, E, F]

Drawing with Pygame

In order to display the conic section equation on the screen, we need to convert the A, B, C, D, E, and F coefficients into a Pygame ellipse. The good news is that Pygame has a method to draw any ellipse with a (Semi-major axis, Semi-minor axis, rotation angle, center x, center y) tuple. Luckily, there are formulas to convert these coefficents into these exact parameters:

or by taking the null space of a 5x6 matrix of the coordinates augmented with a 5x1 matrix of 1's.

We have also animated the motion of the planet in terms of "t" by applying the parametric equation (x, y) = (semi_major * cos(t), semi_minor * sin(t)), and then rotating and aligning this to the original ellispe. In the future, we have to modify the ammount which we increment t to properly reflect Kepler’s Second Law.

Future Development

The next steps for the development of OrbiTrack include:

  1. Modeling the conservation of angular momentum described in Kepler’s Second Law
  2. Adding parameterized motion for non-elliptical trajectories
  3. Properly demonstrating the relationship between period and semi-major axis described by Kepler’s Third Law
  4. Modeling the long-term orbital motion of N-body systems where objects have non-negligible mass compared to one another
  5. Plotting three-dimensional shapes using similar matrix-based techniques

About

Software which automatically calculates the orbits and trajectories of revolving bodies by solving their matrix functions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published