public static LayoutMeta Centering(View view) => new LayoutMeta(
     (w, h) =>
     new Tuple <int, int>(
         SpaceMaths.CenterPad(Console.WindowWidth, view.ContentWidth + view.padding.Left() + view.padding.Right()).Item1,
         SpaceMaths.CenterPad(Console.WindowHeight, view.ContentHeight + view.padding.Top() + view.padding.Bottom() + 1).Item1
         )
     );
Example #2
0
    // Start is called before the first frame update
    void Start()
    {
        int maxPlanets = 10;

        int countPlanets = Random.Range(0, maxPlanets + 1);

        HashSet <int> planetsIndices = new HashSet <int>();

        while (planetsIndices.Count < countPlanets)
        {
            planetsIndices.Add(Random.Range(0, maxPlanets + 1));
        }

        foreach (var planetsIndex in planetsIndices)
        {
            float RiRatio = SpaceMaths.GetPlanetRadiusByTitius_Bode(planetsIndex);
            float R       = Constants.UnityUnitConverter.FromAstronomicalUnits(RiRatio);
            float T       = SpaceMaths.YearsToSeconds(SpaceMaths.KeplerLawPeriod(RiRatio, 1f));
            //Debug.Log(T);
            GameObject planet = Instantiate(SpherePrefab);
            planet.name = "Planet " + (planetsIndex + 1);
            OrbitControl control = planet.GetComponent <OrbitControl>();
            CreateOrbitPoints(planet.GetComponent <LineRenderer>(), R);
            float      phi_0 = Random.Range(0, Mathf.PI * 2);
            PlanetData data  = new PlanetData(R, T, phi_0);
            control.SetPlanetData(data);
        }


        Camera.main.GetComponent <CameraSetupper>().target = GameObject.Find("Center").transform;
        //Camera.main.GetComponent<CameraSetupper>().target = GameObject.Find("Planet 3").transform;
    }