Affichage des résultats 1 à 10 sur 10

Discussion: Python : matrice, angle et rotation

  1. #1
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173

    Python : matrice, angle et rotation

    Bonjour à tous.

    Je sèche sur la compréhension de deux fonctions de la classe utils : MatrixToRotAxis() et son inverse RotAxisToMatrix().

    Ces deux fonctions prennent (ou renvoient) en paramètres d'une matrice, un vecteur v (axe de rotation) et un réel w (angle de rotation).

    Je n'arrive pas à comprendre ce que représentent ces deux paramètres.

    Autant les fonctions MatrixToHPB ou HPBToMatrix ne me posent pas (plus) trop de problème, autant les deux précédentes sont absconses.

    Si vous avez une explication, je suis preneur.

    Par avance, merci

  2. #2
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 190
    Axe de rotation + angle W en general c'est la représentation d'un quaternion.
    Tu fais tourner un objet de x degrés (w) autour d'un axe qui lui peut être orienté n'importe comment.

  3. #3
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173
    Effectivement, il s'agit bien de cela.

    J'ai mis quelque temps à le mettre en pratique, mais maintenant ça va. Pas toujours simple de décoder la doc de Maxon.

    Merci Floc.

  4. #4
    Gourou Avatar de César Vonc
    Date d'inscription
    avril 2006
    C4D version
    R19 Studio
    OS
    Windows 10
    Messages
    2 302
    Je suis pas sûr que ce soit juste ça, les quaternions, j'ai constaté que c'était justement pas simplement un vecteur + une rotation. : p


    Je vous conseille un petit lien très utile pour comprendre la conversion et les différences entre les matrices, le combo angles + rotation, les quaternions et les angles d'Euler :

    http://www.euclideanspace.com/maths/...nion/index.htm

    http://www.euclideanspace.com/maths/...ions/index.htm


    Perso je trouve que manipuler les rotations avec des matrices est plus simple, dès lors que tu comprends qu'une matrice représente les 3 axes avec 3 vecteurs, plus une translation, dans le cas des matrices de C4D, et qu'en multipliant une matrice par une autre, t'appliques la rotation de l'une sur l'autre.

    C'est d'ailleurs comme ça qu'on peut faire marcher les rotations en OpenGL, où plusieurs couches de matrices sont empilées pour changer de repère (glPushMatrix et glPopMatrix, pour ceux qui veulent faire des recherches).
    Dernière modification par César Vonc ; 23/03/2017 à 23h57.

  5. #5
    Gourou Avatar de valkaari
    Date d'inscription
    mai 2009
    C4D version
    R19 Studio
    OS
    OSX Madick
    Messages
    2 766
    Tu peux faire une rotation sur un seul axe à la fois. Autour de l'axe X, Y ou Z. Jamais deux à la fois. C'est pour ça qu'il y a un ordre de rotation. (qu'on peut définir dans c4d)

    Si tu veux faire une rotation d'une matrice autour d'un axe autre, il faut aligner un des axe x, y ou z (en général z) sur l'axe autour duquel tu veux tourner. Faire ta rotation puis revenir.

    Pour aligner ta matrice sur l'axe autour duquel tu veux tourner il faut appliquer des matrices de rotations qui te servent pour revenir (matrices inverses)

    Tu peux constater que ça fait plusieurs opérations, du coup avoir une fonction qui le fait c'est bien mieux.


    j'ai trouvé cette ressource en anglais la troisième vidéo est l'explication de ce que je viens de dire.
    https://www.youtube.com/playlist?lis...kAtcUVgmzdAP8g

    enfin si j'ai bien tout compris T.T

  6. #6
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 190
    Apparemment l'avantages des quaternions est de permettre de passer d'une orientation à une autre de façon douce en évitant les problème de retournement, d'ordre de rotation, de gimbal etc...
    Enfin un truc du genre

  7. #7
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173
    Alors justement... j'ai un vrai problème avec les retournements et c'est cela que j'essaie de traiter en étudiant toutes les possibilités de rotation offertes par le SDK.

    Petit résumé du problème que je rencontre actuellement :





    Au passage de la verticale, les liens supérieurs et inférieurs se retournent. Je deviens fou, ça fait des jours et des jours que je cherche à résoudre ce problème, sans trouver une cohérence à la façon dont ce retournement s'opère. Les axes HPB peuvent s'inverser l'un l'autre et bien que le résultat soit prévisible, la façon dont les axes vont s'imbriquer entre eux ne l'est pas. Pour l'heure j'utilise les fonctions de rotation autour des axes, mais je vais aussi essayer MatrixToRotAxis aujourd'hui.

    Merci à César pour ce lien, (même si je l'ai déjà en référence) et à Valkaari pour cette chaîne. Je m'y plonge, et espère solutionner ce problème.

    PS : je viens d'étudier cette vidéo, c'est redoutablement clair. Cet intervenant explique remarquablement, avec un anglais facilement compréhensible. L'opérateur caméra, en revanche, aurait du faire un peu plus de géométrie, lui.
    Dernière modification par Condor34 ; 24/03/2017 à 12h18.

  8. #8
    Gourou Avatar de druide
    Date d'inscription
    février 2005
    C4D version
    R10.5
    OS
    seven avec Prad Bitt
    Messages
    2 461
    Au risque de paraître stupide,

    Pourquoi tu t'acharnes sur du python pour un truc qui peut se régler avec des tags cibles ?

    Edit : je n'est jamais rencontré de problème de fluidité avec les cibles (j'avais fait toute une colonne vertébrale mécanique sur ce principe) , mais tout le reste est très vrai et je comprend tes motivations
    Dernière modification par druide ; 24/03/2017 à 21h44.
    Semi-nudistes Marathoniens et Campagnards
    Absent, quand je ne suis pas là.

    Merci aux modos pour tout et tous.

  9. #9
    Squatteur Avatar de Condor34
    Date d'inscription
    mars 2013
    C4D version
    R16 Studio
    OS
    Windows 7/64
    Messages
    173
    Ouille, des tags cibles ?

    Aucune fluidité, des saccades dans l'animation, des priorités complexes à gérer... et des contraintes à ajouter !

    Non, quelques lignes de codes et l'affaire est réglée, propre.

    En plus un noeud python est réutilisable dans toute autre configuration similaire.

    Une triangulation, en modélisation mécanique c'est presque une confrontation quotidienne. Avoir un outil fait une bonne fois pour toute plutôt qu'à chaque fois refaire des tags cible et des contraintes.

    Le vrai problème consiste à comprendre ce qui est proposé dans l'API et donc le fonctionnement intrinsèque de C4D et de la théorie matricielle et vectorielle qui va avec.

    Faut la foi, mais tu sais Druide que je suis persévérant. Et accessoirement, revenir aux cours de seconde/première, ça fait comprendre que si on avait eu de tels outils à l'époque, les cours de math et physique auraient été un plaisir plutôt qu'un passage obligé. Mais tout ceci sort du strict cadre de C4D.


  10. #10
    Pilier Avatar de Floc
    Date d'inscription
    novembre 2012
    C4D version
    R15 Studio
    OS
    WindOSX
    Messages
    1 190
    Citation Envoyé par valkaari Voir le message
    j'ai trouvé cette ressource en anglais la troisième vidéo est l'explication de ce que je viens de dire.
    https://www.youtube.com/playlist?lis...kAtcUVgmzdAP8g

    enfin si j'ai bien tout compris T.T
    Effectivement y faut s'accrocher un peu quand même.
    Mais le monsieur explique plutôt bien et comme le montre ce shcéma tiré de l'épisode sur les quaternions…
    Les quaternions c'est vraiment très simple.

    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		Capture d’écran 2017 quaternion.jpg 
Affichages :	2 
Taille :		77,4 Ko 
ID : 			19691

    Quand au cadreur je pense que c'est un robot.

Discussions similaires

  1. Tuto vidéo Python - 02 Introduction au SDK python
    Par gr4ph0s dans le forum Xpresso/Programmation
    Réponses: 4
    Dernier message: 09/02/2017, 18h20
  2. [Résolu] Importer script python dans un plugin python
    Par Pandoxyd dans le forum Nouveaux membres
    Réponses: 8
    Dernier message: 28/09/2016, 11h48
  3. Matrice d'objet et intensité
    Par Hieros Gamos dans le forum Nouveaux membres
    Réponses: 3
    Dernier message: 16/03/2014, 21h48
  4. TP matrice globale
    Par lenogre dans le forum Xpresso
    Réponses: 2
    Dernier message: 16/07/2012, 16h52
  5. Vecteur et Matrice,how do ?
    Par virus dans le forum Xpresso
    Réponses: 3
    Dernier message: 09/12/2004, 14h04

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •