void Cuerpo::actualizar() { double const_g = 6.67384e-11; for(std::list<Cuerpo*>::iterator iter = cuerpos_cercanos.begin(); iter != cuerpos_cercanos.end(); iter++){ Cuerpo *cuerpo = *iter; double angulo = anguloCuerpo(*iter); double num_x = (const_g * cuerpo->getMasa()) * cos(angulo); double num_y = (const_g * cuerpo->getMasa()) * sin(angulo); double den = pow(distanciaCuerpo(*iter),2); acel_x = acel_x + num_x/den; acel_y = acel_y + num_y/den; } vel_x = vel_x + acel_x; vel_y = vel_y + acel_y; pos_x_prev = pos_x; pos_y_prev = pos_y; pos_x = pos_x + vel_x + acel_x/2; pos_y = pos_y + vel_y + acel_y/2; }
Cuerpo::Cuerpo(const Cuerpo &cuerpo){ posicion=cuerpo.getPosicion(); masa=cuerpo.getMasa(); fuerza=cuerpo.getFuerza(); }