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

MATLAB Discussion :

Calculer un angle entre 3 points avec des coordonnées X Y Z


Sujet :

MATLAB

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut Calculer un angle entre 3 points avec des coordonnées X Y Z
    Bonjour à tous,

    J'aimerais avoir quelques explications sur comment calculer un angle avec Matlab.
    Cet angle serait à calculer entre 3 points avec des coordonnées (x, y, z)
    Je dispose des coordonnées de ces trois points.


    Par la suite j'aimerai calculer la vitesse de déplacement de chaque point sachant que je connais le temps et ces coordonnées.

    Enfin est-ce possible de les représenter sous forme de graphique.
    Avec le temps en x et l'ange en Y et un autre avec le temps en x toujours et la vitesse en Y.



    Si vous pouviez me donner quelques pistes de programmes et des explications...
    Je vous remercie d'avance.


    matt

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Le calcul d'un angle vient de la trigonométrie que ce soit sur matlab ou un autre outil de calcul.

    Je pense qu'il faut que tu précises de quel angle tu parles.

    Pour connaitre la vitesse d'un point connaissant ces coordonnées à chaque instant, tu peux utiliser basiquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vitesse = ( x(k+1)-x(k) ) / delta_t ;
    Je te rappel que la vitesse est un déplacement par unité de temps.

    Pour ton graphe de l'angle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    teta=-pi:pi/180:pi;
    temps = 1:length(teta);
    plot(temps,teta)
    Christophe
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Merci pour cette réponse.

    Pourriez-vous me donner des précisions sur comment y mettre en forme sous Matlab pour effectuer le calcule des angles.

    Je connais les formules mathématique mais je ne sais pas vraiment s'il faut les écrire de la même manière.

    Je suis un débutant!!!

    Encore merci.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Donnes nous tes formules pour qu'on t'aide à les écrire dans la syntaxe de matlab...

    Christophe
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Je n'ais pas encore les données mais voici un exemple:

    A (xa,ya,za)
    B(xb,yb,zb
    C(xc,yc,zc)

    Je calcule les vecteurs:
    Uabx = xb - xa; Uaby = yb - ya; Uabz = zb-za
    j'obtiens les coordonnées de AB (xab, yab, zab)

    Ubcx = xc - xb; Ubcy = yc - yb; Ubcz = zc-zb
    idem mais avec BC

    Je calcule le produit scalaire:
    Uab*Ubc = xa*xb*xc + ya*yb*yc + za*zc*zb =ProdSca

    Je calcule les normes:
    ||Uab|| = racine carrée [ (xab)^2 + (yab)^2 + (zab)^2]
    ||Ubc|| = racine ....................................................
    ||Uab-Ubc|| = racine carré [ (xab + xbc)^2 + (yab + ybc)^2 + (zab + zbc)^2]

    Vérification du produit scalaire:
    Uab*Ubc = racine carré ( ||Uab-Ubc||^2 - ||Uab||^2 - ||Ubc||^2 ) = ProdSca

    Je calcule le cosinus:
    Cos ABC = ProdSca / (||Uab||*||Ubc||)

    Vérification du produit scalaire par le cos ABC:
    Uab*Ubc = ||Uab|| * ||Ubc|| * cos ABC = ProdSca

    Enfin je fais le cos-1 de ABC pour obtenir une valeur en degrés.

    Voila cette première partie me permet de trouver le cos de l'angle en B entre mes 3 points .


    Merci

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Les fonctions à utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    la valeur absolue : abs()
     
    la racine carrée : sqrt()
     
    la puissance 2 : ()^2
     
    le cos -1 : acos()
    Essaies de coder ton exemple que tu as envoyé avec les fonctions que je t'ai indiqué puis si tu as une erreur, poste ton code entre les balises code et surtout l'erreur complète renvoyé par matlab

    Christophe
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 68
    Points : 26
    Points
    26
    Par défaut
    Ok merci.

    Je vais déjà essayer ca.

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/02/2013, 17h18
  2. Réponses: 16
    Dernier message: 11/09/2010, 18h34
  3. Calcul de l'angle entre 2 points
    Par Spaeda dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 12/08/2009, 13h06
  4. Calcul de l'angle entre trois points en fonction du sens
    Par NeraOne dans le forum Mathématiques
    Réponses: 4
    Dernier message: 10/07/2007, 17h27
  5. calcule d'angle entre 3 points d'une matrice
    Par bmw13fr dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 08/04/2006, 18h56

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