Je cherche une formule ou un algorithme me permettant de déterminer les coordonnées X et Y d'un point sur cet ATH indiquant une cible en connaissant :
- La position tridimensionnelle de la tête de l'utilisateur.
- La position tridimensionnelle du centre de l'affichage (étant l'origine du repère bidimensionnel).
- La position tridimensionnelle de la cible.
Ce que j'ai essayé jusqu'alors et qui n'a que partiellement fonctionné, est assez compliqué à expliquer, je vais donc tenter de faire de mon mieux :
Soit A,B et C, trois points tel que :
- A est la position de l'utilisateur
- B est la position de l'ATH
- C est la position de la cible
Soit a,b et c, trois segments tels que :
- a = [AC]
- b = [AB]
- c = [BC]
J'utilise ensuite la trigonométrie dans un triangle quelconque :
c² = a² + b² - 2ab x cos(Â)
cos(Â) = (a² + b² - c²) / (2ab)
J'obtiens donc la valeur de l'angle BÂC
Soit D et E, deux points, tel que :
- ADC est un triangle rectangle en D
- E est l'intersection de a par la parallèle à (DC) passant par B
On a donc (EB)T(AB), (DC)T(AB) et (DC)//(EB)
Je calcule ensuite la longueur [AD] et [DC] à l'aide de la trigonométrie :
cos(Â) = [AD] / [AC]
[AD] = [AC] x cos(Â)
sin(Â) = [DC] / [AC]
[DC] = [AC] x sin(Â)
Il ne me reste plus qu'à déterminer la longueur de [EB] par le théorème de Thales :
[AE] / [AC] = [AB] / [AD] = [EB] / [DC]
donc [EB] = ( [AB] * [DC] ) / [AD]
Figure :
Et voilà ! Mais le problème est le suivant : La longueur [EB] sera toujours positive, or je l'emploie comme coordonnée X du point d'affichage, donc ça pose un réel problème ...
J'ai maintes et maintes fois cherché un algorithme ou une formule résolvant ce problème mais je n'ai rien trouvé. Je serais donc très reconnaissant si quelqu'un pouvait me donner ça, ou même rien qu'une piste vers où chercher.
Je vous remercie d'avance !
Bonne soirée !
MegaHertz.
