Coder Social home page Coder Social logo

shredrox / 2d-planetary-system-simulation Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 67.15 MB

My first coursework project from university. The program is written in C# on the framework WPF. It can visualize 2D custom solar systems and planets, created by the user, with orbit animations.

License: MIT License

C# 100.00%

2d-planetary-system-simulation's Introduction

Planetary System ๐ŸŒŒ

An application that can create custom solar systems and display them on a 2D canvas with orbit animations.

๐Ÿ–ฅ๏ธ The Project

My first coursework project from Uni. The program is written in C# on the framework WPF. It can visualize 2D custom solar systems and planets, created by the user, with orbit animations.

Installation

  • Download PlanetarySystem.v1.0.0.zip from the latest release and unarchive it
  • Run setup.exe
  • Choose installation folder
  • Finish the installation
  • Run the program with the exe in the install folder or with a shortcut

(if installing in Program Files/Program Files (x86) run the program as administrator) (The app is Windows-only)

Features:

๐ŸŒŒ Creating custom solar systems

The user can create custom solar systems with custom planets by entering the planets' data and choosing an image to visualize the planet. The maximum number of planets in a system is 8.

Creating new system

The dimensions and the speed of a new planet are also determined by the user, and by entering a negative(-) value for the speed, the direction of the orbit rotation changes. The maximum number of displayed moons for each planet is 3 but the user can enter a bigger moon count in the planet's data.

๐ŸŒŒ Editing custom solar systems

The user can add or remove planets at a chosen position in the system, change the system's name and description and delete the system altogether.

Editing system

Adding new planet

๐ŸŒŒ Different solar system layouts

The editing of systems allows for different layouts, depending on the positions of the planets.

Layout Example 1

Layout Example 2

Layout Example 3

๐ŸŒŒ Animations!

The orbits are animated, with the option to change the speed, direction or pause the animation.

๐ŸŒŒ Canvas zooming

The user can zoom in and look at the systems they have created.

๐ŸŒŒ The model of our Sol System

The program has a built in model of our solar system with all the data written in. There's also a link to wikipedia for more information for each planet.

๐ŸŒŒ Changing the canvas background

Changing the space background to suit your space vibes!

The UI

The front end of the application is written in XAML and most of the UI element styles are from the nuget package MaterialDesign.

Serialization/Saving system data

All the custom systems and data, entered by the user, are serialized using the XML format and deserialized upon the start of the application.

2d-planetary-system-simulation's People

Contributors

shredrox avatar

Stargazers

Roman Pletiuk avatar Hristo Zagorliev avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.