void Objet::bouger(double delta_t) { //cout << "objet dt=" << delta_t << endl; //cout << "vitesse objet =" << vitesse(0) << "," << vitesse(1) << endl; position(0)+=delta_t*vitesse(0); position(1)+=delta_t*vitesse(1); std::ostringstream strs; strs << position(0) << " " << vitesse(0) << " " << position(1) << " " << vitesse(1); trace.ecrire(strs.str()); }
Objet::Objet(double x0,double y0,double v0x, double v0y) { position = vec(2); position(0)=x0; position(1)=y0; masse=50; vitesse = vec(2); vitesse(0)=v0x; vitesse(1)=v0y; energie=0; trace = Trace(); }
void ObjetVolant::test(actionObjetVolant action, QPointF pointArrivee, double angleArrivee, double vitesseArrivee) { animationRoot->stop(); setAction(action); int ms; double distance; double angleRadian; QPointF newPosition; double newAngle; double newVitesse; ms = 25; distance = vitesse() * ms; angleRadian = rad(angle()); newAngle = angle() + vitesseAngulaire() * ms; newVitesse = vitesse() + acceleration() * ms; newPosition = position() + QPointF(cos(angleRadian) * distance, sin(angleRadian) * distance); }
void ObjetVolant::seDeplacer() { int ms; double distance; double angleRadian; QPointF newPosition; double newAngle; double newVitesse; //Calcule l'angle, la vitesse et la position ms = temps.elapsed(); distance = vitesse() * ms; angleRadian = rad(angle()); newAngle = angle() + vitesseAngulaire() * ms; newVitesse = vitesse() + acceleration() * ms; newPosition = position() + QPointF(cos(angleRadian) * distance, sin(angleRadian) * distance); //Déplace l'objet volant seDeplacer(newPosition, newAngle, newVitesse); }
void ObjetVolant::seDeplacer(QPointF pointArrivee, double angleArrivee, double vitesseArrivee) { //Prépare les animations de position, d'angle, et de vitesse animationPosition->setStartValue(position()); animationPosition->setEndValue(pointArrivee); animationAngle->setStartValue(angle()); animationAngle->setEndValue(angleArrivee); animationVitesse->setStartValue(vitesse()); animationVitesse->setEndValue(vitesseArrivee); animationRoot->start(); temps.restart(); }
// Renvoie 1 la vitesse des angles est faible, c'est à dire que le bras ne bouge plus bool Baxter_left_arm::vitesse_nulle() { std::vector<bool> vitesse(7,0); bool test=1; int j=0; for(size_t i = 2; i < 9; i++) { vitesse[i-2] = jointState.velocity[i] < 0.03 ; //std::cout<<vitesse[i]<<std::endl; } while(j<7) { test*=vitesse[j]; j++; //std::cout<<"test"<<test<<std::endl; } return test; }
void Objet::setVitesse(double vx, double vy) { vitesse(0) = vx; vitesse(1) = vy; }
double Objet::getVitesse() { return sqrt(vitesse(0)*vitesse(0) + vitesse(1)*vitesse(1)); }
void Objet::setVy(double v0) { vitesse(1) = v0; }
double Objet::getVy() { return vitesse(1); }
void Objet::setVx(double v0) { vitesse(0) = v0; }
double Objet::getVx() { return vitesse(0); }