GithubHelp home page GithubHelp logo

nschoonbroodt / reaktor-orbital-challenge Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 3 KB

Code used for the challenge at https://reaktor.com/orbital-challenge/

License: The Unlicense

MATLAB 100.00%

reaktor-orbital-challenge's Introduction

reaktor-orbital-challenge

Code used for the challenge at https://reaktor.com/orbital-challenge/

How it works

The main idea of the algorithm is to create an adjacency matrix, indicating which satellite are in visibility of each other. The origin and the destination of the call are handled as satellite (but on ground, altitude = 0).

To compute which satellite are viewed by another one, some simple geometry is used. I compute the angle alpha between the "Center of the Earth-Satellite(i)" line and the "Satellite(i)-Tangent to the Earth". Then I compute the angle beta between "Center of the Earth-Satellite(i)" and "Satellite(i)-Satellite(j)". If beta > alpha, the satellite are in sight. Note that alpha < beta does not necessarly mean that they are not visible, but I symetrize the matrix later, which should be enough to handle corner case where a satellite is "above" another one.

[Should insert a picture, better than a thousand words, but I have no picture]

Once I have the adjacency matrix, I just use a simple BFS algorithm to find the path with the smaller number of satellites.

Should work on any file, sorry that I don't have any fancy visualisation, and that the code is poorly documented. Also I have slightly modified it since my submission, I hope it still works as expected.

reaktor-orbital-challenge's People

Contributors

nschoonbroodt avatar

Watchers

 avatar  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.