Après le succès qu'a eu mon premier jeu et en plus sur TI Nspire, je me lance donc dans du lourd, du très lourd...


Euh oui, je me lance dans la programmation d'un logiciel 3D pour TI Nspire CAS

Quoi mais il est fou ce mec

Non non ! je n'ai pas perdu la tête, c'est juste que j'ai eu envie que mon TPE m'aide à apprendre de nouvelle choses (TPE sur le modèle et la simulation 3D)
Il s'agit donc, pour l'instant, d'un simple affichage en projection perspective d'un modèle 3D définit par l'utilisateur à l'aide d'une matrice x*3 où x est le nombre de points.

Il permet de changer la position de l'observateur en x, y et z, mais, pour l'instant, pas de l'orientation


Je n'ai, pour l'instant (encore une fois), pas programmé le fait de pouvoir générer les arrêtes et les faces, sur le screen je l'ai fait manuellement pour débuger la suite vous allez voir

Je disais donc qu'il y avait un problème; oui il y en a un, et un très embêtant...
J'ai commencé à programmer la matrice de rotation....

Et là... c'est le bordel il faut le dire...
- sur X de 5 rad

- sur Y de 5 rad

- sur Z de 5 rad (elle marche)

- sur tous les axes de 5 rad

J'ai essayé de me mettre en radian, puis en degré, aucun changement majeur, donc je suis resté en radian.
Il faut dire que j'ai pas très bien compris un truc dans la matrice en 3D
- L'objet a bien une matrice contenant tous les points sur X, Y et Z non ?
- L'objet a une matrice globale contenant la position du centre et son orientation ou je me trompe ?
- La matrice de rotation doit-elle comprendre les coordonnées homogène (la matrice en screen plus bas) ou c'est juste une formalité ?
(en gros est-ce que ça influence sur le reste du calcul )
- Est-ce que, pour obtenir les points après rotation, il faut faire:
MESH * MAT_ROT
où MESH est une matrice contenant tous les points sur x, y et z et MAT_ROT, la matrice que j'utilise pour la rotation soit

Je demande aux pro, si il y a une erreur dans mon raisonnement, ou si il s'agit de la matrice de rotation que j'ai honteusement copiée depuis internet

@@+
edit: dans mon prog, ma matrice de translation n'est pas en coordonnées homogènes, donc elle est 3*3, sans la dernière ligne et dernière colonne