Exemple #1
0
 //Using FixedUpdate() is better than Update() and Time.deltaTime because the math only has to be done 30 times per second.
 void FixedUpdate()
 {
     rSpeedQ = QuaternionD.Euler(rotationSpeed);
     foreach (Planet p in planets)
     {
         p.rotation *= rSpeedQ;
     }
 }
Exemple #2
0
        void Start()
        {
            planets.Add(GetComponent <Planet>());

            foreach (Transform t in transform)
            {
                if (t.GetComponent <Planet>() != null)
                {
                    planets.Add(t.GetComponent <Planet>());
                }
            }


            rSpeedQ = QuaternionD.Euler(rotationSpeed);
        }
Exemple #3
0
        public static Orbit TiltOrbit(Orbit original, Quaternion rotation)
        {
            Orbit      o = original;
            Quaternion r = rotation;

            QuaternionD orbitQuat = QuaternionD.Euler(o.inclination, 0, 0);
            QuaternionD rotD      = new QuaternionD(r.x, r.y, r.z, r.w);

            QuaternionD mult    = rotD * orbitQuat;
            Vector3d    multEul = mult.eulerAngles;

            Orbit orbit = new Orbit(
                multEul.x,
                o.eccentricity,
                o.semiMajorAxis,
                o.LAN,
                o.argumentOfPeriapsis,
                o.meanAnomalyAtEpoch,
                o.epoch,
                o.referenceBody);

            return(orbit);
        }