// Start is called before the first frame update
    private void SolveMovementEc(Particle[] particulas)
    {
        /*metodo RUNGE KUTTA 4 orden
         * Yi+1=Yi+1/6(k1+2k2+2k3+k4)
         * donde:
         * k1=hf(xi,yi)
         * k2=hf(xi+1/2h,yi+1/2k2)
         * k3 = hf(xi+1/2h,yi+1/2k2)
         * k4 = hf(xi+h,yi+k3)
         */
        for (int i = 0; i < cantEsferas; i++)
        {
            k1     = particulas[i].DFase;
            k2.pos = k1.pos / 2.0f;
            k2.vel = k1.vel / 2.0f;
            k2     = SumaDelta(particulas[i], mStep / 2.0f, k2);
            k3.pos = k2.pos / 2.0f;
            k3.vel = k2.vel / 2.0f;
            k3     = SumaDelta(particulas[i], mStep / 2.0f, k3);
            k4     = SumaDelta(particulas[i], mStep, k3);

            //RUNGE KUTTA
            particulas[i].Fase.pos += (1.0f / 6.0f) * (k1.pos + 2 * k2.pos + 2 * k3.pos + k4.pos) * mStep;
            particulas[i].Fase.vel += (1.0f / 6.0f) * (k1.vel + 2 * k2.vel + 2 * k3.vel + k4.vel) * mStep;
        }
    }
    private vectores SumaDelta(Particle particula, float dt, vectores b)
    {
        vectores Rk;

        Rk.pos = dt * particula.DFase.pos + b.pos;
        Rk.vel = dt * particula.DFase.vel + b.vel;
        return(Rk);
    }