Alors voilà, je conçois un petit programme en 2D en langage C++.
J'ai obtenu un angle entre 2 vecteurs.
Les 2 vecteurs sont les suivants :
C[x,y] étant la position de ma caméra.
O[x,y] étant la position d'un obstacle.
Mon champs de vision est un angle de 60 degrés qui part de la caméra et qui a une orientation dépendant de la variable angle ( donc la valeur d'angle jusqu'à la valeur d'angle + 60 degrés, par exemple si mon angle fait 220 degrés, ma caméra aura un champs de vision qui ira de 220 jusqu'à 280 degrés etc.. )
Je calcule l'angle obtenu par ces deux vecteurs en utilisant Atan2 :
int d = atan2(O.y-C.y, O.x-C.x) * 180/PI + 180;
( +180 afin que mon atan2 soit effectif de 0 à 360 degrés ( et non de -180 à 180 ) ).
Je désirerais donc déterminer si mon obstacle ( autrement-dit le point O[x,y] ) est dans le champs de vision de 60 degrés de ma caméra C[x,y] ( qui est donc un angle de 60 degrés ) ou non.
J'aimerais faire comme ceci en gros :
Hors de champs de vision, mon point est rouge, le calcul me renverra "faux/false" ou 0.
https://image.noelshack.com/fichiers/20 ... 2134-1.png
Si mon point est dans le champs de vision, mon point sera vert, le calcul me renverra donc "true/false" ou 1.
Afin d'avoir ce résultat :
https://image.noelshack.com/fichiers/20 ... 2231-2.png
Evidemment, je n'ai pas trouvé la solution, donc j'ai colorié le point en vert sur paint pour vous montrer
Comment pourrais-je donc déterminer si mon point est dans mon angle ou non ?
Je suis une d'une nullité absolument faramineuse en mathématiques mais ce calcul me serait extrêmement utile donc je l'étudierais avec la plus grande attention si y en a un parmi vous qui serait susceptible de bien vouloir m'aider !
Merci à vous énormément !
