//---------------------------------------------------------------------------- void Simulation () { // set up the physics module PhysicsModule kModule; kModule.Gravity = 1.0; kModule.Mass = 0.1; double dTime = 0.0; double dDeltaTime = 0.001; double dQ = 1.0; double dQDer = 0.0; kModule.Initialize(dTime,dDeltaTime,dQ,dQDer); // run the simulation ofstream kOStr("simulation.txt"); kOStr << "time q qder position" << endl; const int iMax = 2500; for (int i = 0; i < iMax; i++) { double dX = dQ, dY = dQ*dQ, dZ = dQ*dY; char acMsg[512]; sprintf(acMsg,"%5.3lf %+16.8lf %+16.8lf %+8.4lf %+8.4lf %+8.4lf", dTime,dQ,dQDer,dX,dY,dZ); kOStr << acMsg << endl; kModule.Update(); dTime = kModule.GetTime(); dQ = kModule.GetQ(); dQDer = kModule.GetQDer(); } }
//---------------------------------------------------------------------------- void BeadSlide::Simulation () { // Set up the physics module. PhysicsModule module; module.Gravity = 1.0; module.Mass = 0.1; double time = 0.0; double deltaTime = 0.001; double q = 1.0; double qDot = 0.0; module.Initialize(time, deltaTime, q, qDot); // Run the simulation. std::string path = ThePath + "simulation.txt"; std::ofstream outFile(path.c_str()); outFile << "time q qder position" << std::endl; const int imax = 2500; for (int i = 0; i < imax; ++i) { double x = q, y = q*q, z = q*y; char message[512]; sprintf(message, "%5.3lf %+16.8lf %+16.8lf %+8.4lf %+8.4lf %+8.4lf", time, q, qDot, x, y, z); outFile << message << std::endl; module.Update(); time = module.GetTime(); q = module.GetQ(); qDot = module.GetQDot(); } outFile.close(); }