ZFinal = X * (-Sin(RY)) + Y * (-Cos(RY) * Sin(RX)) + Z * (Cos(RY) * Cos(RX))
avec X, Y et Z les coordonnées avant rotation, et Xfinal, Yfinal, et
Zfinal, les coordonnées apres rotation, et RX, RY et RZ, les rotations
autours des angles
j'étais pas pres de trouver avec mes petites bidouille trigo
si tu as un bon niveau en math tu peu regarder un cours que j'ai trouvé
(uniquement la premiere partie) qui donne une formule générale sur la
changement de repere en 3 dimensions.
(Xt,Yt,Zt) -> (Xt-Xc,Yt-Yc,Zt-Zc) où (Xc,Yc,Zc) est l'origine du repère t dans T
2) tu fais subir les rotations inverses du repère t dans T. Tes angles
d'inclinaison sont pas très clairement définis, mais en gros il suffit
de multiplier ton point obtenu en 1) par les matrices 3x3 suivantes
(Ax,Ay,Az représentent tes angles par rapport à l'axe x,y,z) :
cos(Az) -sin(Az) 0
sin(Az) cos(Az) 0
0 0 1
cos(Ay) 0 sin(Ay)
0 1 0
-sin(Ay) 0 cos(Ay)
1
0 0
0 cos(Ax) -sin(Ax)
0 sin(Ax) cos(Ax)
il faut toujours faire attention dans l'angle, si on prend +Ax ou -Ax... on se trompe facilement
j'ai regardé ta source sur le raytracing pour voir, parce que je me
doute qu'elle contient la solution a mon pb, mais je n'y comprend pas
grand chose (c'est la faute aux matrices tout ca :D)
sans vouloir t'offenser, je crois que si tu connais pas les matrices, il vaut mieux ne pas essayer.
je te conseille de trouver un livre sur les matrices, et de faire un peu de maths (c'est pas difficile, faut juste passer un peu de temps au début)