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

  1. #1
    Nouveau membre du Club
    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é
    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
    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é
    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
    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é
    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
    Ok merci.

    Je vais déjà essayer ca.