IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Mise a jour d'une vitesse angulaire


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 130
    Points : 66
    Points
    66
    Par défaut Mise a jour d'une vitesse angulaire
    Salut,

    J'ai une fonction qui mets a jour la vitesse d'un objet.
    Pour sa vitesse lineaire, pas de souci
    j'ai la somme des forces exterieures et l'intervalle de temps, donc :
    acceleration = forces / masse;
    newvitesse = oldvitesse + acceleration * dt;
    newposition = oldposition + vitesse * dt;

    Mais cette objet peut egalement tourner.
    Et je sais pas comment faire pour calculer la nouvelle vitesse angulaire.

    Si quelqu'un peut eclairer ma lanterne,

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Si ton objet tourne selon un axe fixe (par rapport à l'objet), tu dois calculer le moment d'inertie J de ton objet selon cet axe, puis utiliser :
    J * (dérivée de la vitesse de rotation) = moment des forces selon l'axe de rotation .
    Si ton axe n'est pas fixe, ça se complique un peu (encore que certains autres cas soient relativement simple).
    Je te conseille de consulter un petit cours de mécanique du solide, même superficiellement, ça t'éclairera un peu les idées !

    --
    Jedaï

  3. #3
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 130
    Points : 66
    Points
    66
    Par défaut
    bon j'ai repeché quelque chose dans un vieux cours de meca.

    vAng = vAng + (~I * (M - (vAng ^ ( I * vAng))) * dt

    avec :
    I = matrice d'inertie
    ~I = matrice d'inertie inverse
    M = moment

    ca pourrait coller ?

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Peut-être...

  5. #5
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 130
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par Miles
    Peut-être...


    j'aime bien

    l'autre probleme c'est que je comprend pas cette equation ... et ca m'enerve
    Si quelqu'un peut m'expliquer rapidement

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Le nouvel angle est égal à l'ancien + une fraction dépendante de l'angle.
    Logiquement, ça dépend du moment et de la matrice inverse de l'inertie, mais s'il y a de l'inertie, ça compense aussi le moment, donc on va retirer au moment une partie qui est fonction de l'angle et de l'inertie - enfin, ça me paraît louche, c'est quoi l'opérateur ^ ? -

  7. #7
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 130
    Points : 66
    Points
    66
    Par défaut
    le produit en croix de deux vecteur (cf code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Vector cross product (u cross v)
    inline	Vector operator^(Vector u, Vector v)
    {
    	return Vector(	u.y*v.z - u.z*v.y,
    					-u.x*v.z + u.z*v.x,
    					u.x*v.y - u.y*v.x );
    }

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est ce que je pensais. et * ?
    Ca m'a l'air correct : s'il n'y a pas de vitesse angulaire au départ, elle sera fonction du moment et de l'inertie de l'objet.

  9. #9
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 130
    Points : 66
    Points
    66
    Par défaut
    le * c'est la multiplication d'une matrice par un vecteur (matrice 1x3)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    inline	Vector operator*(Matrix3x3 m, Vector u)
    {
    	return Vector(	m.e11*u.x + m.e12*u.y + m.e13*u.z,
    					m.e21*u.x + m.e22*u.y + m.e23*u.z,
    					m.e31*u.x + m.e32*u.y + m.e33*u.z);					
    }

  10. #10
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est logique en plus...
    A priori, ça m'a l'air correct comme équation

  11. #11
    Membre du Club
    Inscrit en
    Février 2003
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 130
    Points : 66
    Points
    66
    Par défaut
    a moi aussi maintenant,

    surtout apres quelques recherches sur le net.
    Et surtout apres avoir decouvert que l'auteur s'etait planté en mettant * au lieu de ^ (alors qu'il le mettait partout jusque la)

    Merci bcp.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mise a jour d'une table
    Par cterpreau dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 01/12/2005, 18h35
  2. Mise a jour d'une base distante [clos]
    Par vinzrsi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/09/2005, 13h37
  3. mise à jour d'une BDD locale sur un serveur distant
    Par jive dans le forum Général Conception Web
    Réponses: 4
    Dernier message: 22/08/2005, 21h26
  4. mise a jour d'une bd pendant l'utilisation
    Par squal_13 dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 20/05/2005, 22h18
  5. mise a jour d'une base a partir d'une autre base
    Par seb3099 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 18/06/2004, 08h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo