DEV Community

masoomjethwa
masoomjethwa

Posted on

Moon Landing Animation using python

A simple example of how you can create a basic animation of a lander's soft landing on the moon using the Matplotlib library.

import matplotlib.pyplot as plt
import matplotlib.animation as animation
from IPython.display import HTML

# Set up the figure and axis
fig, ax = plt.subplots()
ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
ax.set_aspect('equal')

# Define the moon's surface as a line
moon_surface, = ax.plot([0, 10], [2, 2], color='gray')

# Define the lander as a circle
lander_radius = 0.3
lander = plt.Circle((5, 9), lander_radius, fc='blue')
ax.add_patch(lander)

# Set initial velocity and position
velocity = -0.1
position = 9

def init():
    return lander,  # Return the lander as the artist to be re-drawn

def update(frame):
    global velocity, position

    # Update position based on velocity
    position += velocity

    # Check if lander has landed
    if position - lander_radius <= 2:
        velocity = 0

    # Update the position of the lander
    lander.center = (5, position)

    return lander,  # Return the lander as the artist to be re-drawn

# Add labels to the X and Y axes
ax.set_xlabel('Longitude')
ax.set_ylabel('Latitude')

# Create the animation
ani = animation.FuncAnimation(fig, update, init_func=init, frames=range(100), blit=True)

# Convert the animation to HTML
ani_html = HTML(ani.to_jshtml())

# Display the animation in the notebook
ani_html
Enter fullscreen mode Exit fullscreen mode

The animation is displayed directly within the notebook.

Top comments (0)