J'ai beoin de votre aide, je commence à devenir fou avec ce problème .
Je suis actuellement sur un projet de réalité virtuelle mais un problème se pose à moi (et pas des moindres).
Je vous explique la chose.
Voic une modélisation d'une scène de prise de vue :
Tout d'abord, je vais détailler la modélisation de la caméra.
La caméra se situe à l'origine de la base bleue la caméra regarde dans la direction de z.
Le plan de projection, représente ce qui s'affiche à l'écran. Soit un point P de l'espace, il exitse un plan parallèle au plan de projection passant par P. Les coordonées de P dans le repère vert sont donc (x'',y'',0,1).
Dans le plan de projection (et danc dans le repère rouge), les coordonnées de P sont (X,Y,0,1)
Dans le repère bleu, les coordonnées de P sont (x',y',z',1) et dans le repère violet, ses coordonnées sont (x,y,z,1).
Pour passer des coordonées (x,y,z,1) aux coordonnées (x',y',z',1), sauf erreure de ma part, il existe une matrice de la forme :[[a'1,a'2,a'3,a'4][b'1,b'2,b'3,b'4][c'1,c'2,c'3,c'4][0,0,0,1]]
on a donc
- x' = a'1*x+a'2*y+a'3*z+a'4
- y' = b'1*x+b'2*y+b'3*z+b'4
- z' = c'1*x+c'2*y+c'3*z+c'4
Notons dF la distance entre entre les repères bleux et rouges.
De là, on peut alors écrire que: X = dF * x'/z' et Y = dF * y'/z'.
Donc finalement, il semblerait légitime d'écrire :
- X = dF * (a'1*x+a'2*y+a'3*z+a'4) / (c'1*x+c'2*y+c'3*z+c'4)
- Y = dF * (b'1*x+b'2*y+b'3*z+b'4) / (c'1*x+c'2*y+c'3*z+c'4)
On peut donc également écrire :
- X = (a1*x+a2*y+a3*z+a4) / (c1*x+c2*y+c3*z+c4)
- Y = (b1*x+b2*y+b3*z+b4) / (c1*x+c2*y+c3*z+c4)
Voilà donc où je voulais en venir.
En gros, l'idée est de trouver les fonctions Fx et Fy qui permettent de passer de (x,y,z) (coordonnées du point P) dans le repère violet à (X,Y,0) (coordonnées de P' ) dans le repère rouge. Il est important de préciser que le repère violet n'a aucune axe parallèle aux axes du repère bleu (pour passer du violet au bleu, il faut donc composer une rotation avec une translation).
Voilà, il s'agit de ma première question.
J'en aurai une deuxième par la suite une fois cette première étape résolue.
J'éspère vraiment que vous pourrez m'aider... je suis bloqué
-----