Code Monkey home page Code Monkey logo

planetarysystemsimulator's People

Watchers

 avatar

planetarysystemsimulator's Issues

Баги в модели

  1. Почему-то невозможно создать объект с эксцентриситетом 0. Вкладка, где явно задаётся эксцентриситет этого не позволяет сделать, а если попытаться задать его через размеры полуосей, то вылетает исплючение:
May 08, 2018 2:32:46 PM tornadofx.DefaultErrorHandler uncaughtException
SEVERE: Uncaught error
java.lang.IllegalArgumentException: The time is invalid
        at javafx.animation.Animation.jumpTo(Animation.java:754)
        at javafx.animation.Animation.playFrom(Animation.java:868)
        at ktlo.psyssim.model.PlanetarySystem$subPlanet$1.invoke(PlanetarySystem.kt:115)
        at ktlo.psyssim.model.PlanetarySystem$subPlanet$$inlined$with$lambda$1.invoke(PlanetarySystem.kt:133)
        at ktlo.psyssim.model.PlanetarySystem$subPlanet$$inlined$with$lambda$1.invoke(PlanetarySystem.kt:19)
        at ktlo.psyssim.model.PlanetarySystem$sam$javafx_beans_InvalidationListener$0.invalidated(PlanetarySystem.kt)
        at com.sun.javafx.binding.ExpressionHelper$SingleInvalidation.fireValueChangedEvent(ExpressionHelper.java:137)
...
  1. Если взять шаблон "Inner solar system" и добавить спутник, например, Луне с большим радиусом орбиты, но маленькой массой (оставим все параметры кроме массы по умолчанию, а массу установим в 0.0001), то орбита земли довольно сильно сместится от нарисованной пунктиром. Выглядит это, как минимум, контринтуитивно. Такое ощущение, что при подсчёте центра масс подсистемы не учитываются, собственно, массы.

Общие улучшения

Эти замечания с наиболее низким приоритетом и, в принципе, можно их оставить за пределами работы в этом семестре.

  1. В UI определённо не хватает зума и прокрутки. Я начал создавать солнечную систему с реальными параметрами, но моё начинание закончилось, когда я попытался задать массу Солнца в земных массах.
  2. (это точно с самым низким приоритетом) Было бы круто сделать возможность экспортировать планетную систему в произвольный файл. Для этого потребуется переработать формат сохранений (например, архив с JSON-описанием и картинками)

Замачания по коду

В принципе, при чтении кода глаз почти ни за что коробящее не зацепляется, код довольно чистый и возможности Котлина используются грамотно.

Есть только небольшое сомнение в том, нужен ли класс Calculator. Можно добавить эти свойства прямо в AstronomicalObject, можно следать их в виде extension-значений.

Баг в UI

Имя по умолчанию для планетной системы содержит пробелы, но своё имя с пробелами создать нельзя.

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.