Near-Polar Orbitting Satellite
Loading the math board and drawing, please wait…
This example demonstrates the orbit of a near-polar satellite. Key mathematical concepts include the geometry of circles, parametric equations, and transformations. Using GeoGebra commands such as Rotate, Point, Circle, etc., the dynamic changes in the satellite's orbit can be shown. Suitable for high school and above students or teachers.
GeoGebra Commands & Parameters
Rotate(IntersectPath[Rotate[Plane[Line[centreearth, (x(centreearth) + 1, y(centreearth), z(centreearth))], Line[centreearth, (x(centreearth), y(centreearth) + 1, z(centreearth))]], ((-orbitinclination))°, Line[centreearth, (x(centreearth), y(centreearth) + 1, z(centreearth))]], Sphere[centreearth, radiusearth + altitude]], ((-15 * timeofday))°, Line[(0, 0, 0), (0, 0, 1)]) → orbitPoint(orbit, orbitpos) → satelliteSphere(centreearth, radiusearth) → planetSegment(satellite, Intersect[Line[satellite, centreearth], planet]) → heightSphere(centreearth, radiusorbit + focallength) → aIntersect(Line[satellite, centreearth], a) → A, BOrthogonalLine(A, orbit) → cPoint(c) → S1Point(c) → S2Intersect(Line[S1, satellite], planet) → E, FIntersect(Line[S2, satellite], planet) → G, HIntersectPath(Plane[(x(centreearth), y(centreearth), z(centreearth)), (x(centreearth) + 1, y(centreearth), z(centreearth)), (x(centreearth), y(centreearth) + 1, z(centreearth))], planet) → equatorSegment((0, 0, radiusearth + (radiusearth * 0.2)), (0, 0, (-(radiusearth + (radiusearth * 0.2))))) → earthaxisPointIn(planet) → merideanpointCircle(merideanpoint, (0, 0, (-radiusearth)), (0, 0, radiusearth)) → merideanPoint(c) → S3Rotate(meridean, 45°, Line[(0, 0, 0), (0, 0, 1)]) → meridean45Rotate(meridean, 90°, Line[(0, 0, 0), (0, 0, 1)]) → meridean90Rotate(meridean, 135°, Line[(0, 0, 0), (0, 0, 1)]) → meridean135IntersectPath(Plane[(x(centreearth), y(centreearth), z(centreearth) + (radiusearth * sin(latitude°))), (x(centreearth) + 1, y(centreearth), z(centreearth) + (radiusearth * sin(latitude°))), (x(centreearth), y(centreearth) + 1, z(centreearth) + (radiusearth * sin(latitude°)))], planet) → parallelIntersect(Line[satellite, centreearth], planet) → C, DCircumcircleArc(E, C, G) → coveragePoint(orbit, 0.25 + viewaltitude / 360) → viewpointIf((orbitpos ≥ 0) ∧ (orbitpos ≤ 0.5), true, false) → descendingIf(abs(orbitpos - latitudepos) ≤ miss, true, false) → pass