Trigonométrie et principes mathématiques Flashcards
Pourquoi les mathématiques sont-elles importantes en programmation de jeux vidéo?
Les mathématiques jouent un rôle important en programmation de jeux vidéo, que ce soit pour les algorithmes complexes ou les déplacements élémentaires des acteurs dans l’écran. Les notions mathématiques du secondaire sont essentielles pour déterminer les nouvelles positions des acteurs à chaque mise à jour du jeu.
À quoi sert le cercle trigonométrique dans le développement de jeux vidéo?
Le cercle trigonométrique permet de situer n’importe quel point autour d’une origine déterminée. C’est essentiel dans les jeux vidéo pour déterminer la nouvelle position d’un acteur à chaque mise à jour, qu’il se déplace aléatoirement ou vers un point précis.
Quelle unité de mesure d’angle est utilisée par défaut dans les fonctions trigonométriques des langages de programmation?
Les fonctions trigonométriques des langages de programmation utilisent les radians et non les degrés par défaut.
Donnez la correspondance entre radians et degrés pour un cercle complet.
Un cercle complet correspond à:
360 degrés
2π radians (environ 6.28 radians)
Complétez ce tableau de conversion entre radians et degrés:
0 rad = ? degrés
π/2 rad = ? degrés
π rad = ? degrés
3π/2 rad = ? degrés
2π rad = ? degrés
0 rad = 0 degrés
π/2 rad = 90 degrés
π rad = 180 degrés
3π/2 rad = 270 degrés
2π rad = 360 degrés
Qu’est-ce que le cosinus d’un angle en termes géométriques, et quelle est son utilité dans les jeux vidéo?
Le cosinus d’un angle est le rapport entre le côté adjacent d’un angle et l’hypoténuse. C’est la projection d’un vecteur sur l’axe des x. Il est très utile pour déterminer le déplacement gauche-droite à apporter à un acteur lors de sa mise à jour.
Qu’est-ce que le sinus d’un angle en termes géométriques, et quelle est son utilité dans les jeux vidéo?
Le sinus d’un angle est le rapport entre le côté opposé d’un angle et l’hypoténuse. C’est la projection d’un vecteur sur l’axe des y. Il est très utile pour déterminer le déplacement haut-bas à apporter à un acteur lors de sa mise à jour.
Qu’est-ce que la tangente d’un angle en termes géométriques, et quelle est son utilité dans les jeux vidéo?
La tangente d’un angle est le rapport entre le côté opposé et le côté adjacent d’un angle. C’est la pente. Elle est très utile pour déterminer l’angle entre deux acteurs lors de la mise à jour.
Comment calcule-t-on la pente entre un personnage et une cible dans un jeu 2D?
La pente entre un personnage et une cible se calcule avec la formule:
pente = (cible.y - perso.y) / (cible.x - perso.x)
Quelle fonction utilise-t-on pour trouver l’angle à partir de la pente en C++?
On utilise la fonction atan2 (ou atan2f pour les flottants), qui est la fonction de tangente inverse. Il est important d’utiliser atan2f et non atanf.
Écrivez le code C++ permettant de calculer l’angle entre un personnage et une cible.
float angle = atan2f(cible.y - perso.y, cible.x - perso.x);
Comment calcule-t-on la trajectoire d’un acteur connaissant sa position, son angle et sa vitesse?
On calcule les composantes du mouvement avec les formules:
mouvementX = cos(angle) * vitesse;
mouvementY = sin(angle) * vitesse;
En quelles unités la vitesse d’un acteur est-elle généralement exprimée dans un jeu vidéo?
La vitesse s’exprime généralement en pixels par seconde. Il faut donc tenir compte du temps écoulé pour calculer correctement le déplacement.
Où se trouve l’origine de l’écran en programmation 2D et quelles implications cela a-t-il sur le mouvement vertical?
En programmation 2D, l’origine de l’écran est généralement située en haut à gauche. Par conséquent, une variation positive de la position Y d’un acteur le fera descendre dans l’écran, tandis qu’une variation négative le fera monter.
Si un acteur a un angle de 0 radian, dans quelle direction se déplacera-t-il?
À 0 radian, un acteur se déplacera horizontalement vers la droite, car cos(0) = 1 et sin(0) = 0, donc il n’y aura que du mouvement sur l’axe X positif.
Si un acteur a un angle de π/2 radians, dans quelle direction se déplacera-t-il?
À π/2 radians (90°), un acteur se déplacera verticalement vers le bas (en coordonnées d’écran), car cos(π/2) = 0 et sin(π/2) = 1, donc il n’y aura que du mouvement sur l’axe Y positif.
Comment doit-on ajuster le calcul du mouvement pour tenir compte du temps écoulé?
Pour tenir compte du temps écoulé, on multiplie la vitesse par le temps:
mouvementX = cos(angle) * vitesse * deltaTime;
mouvementY = sin(angle) * vitesse * deltaTime;
où deltaTime est le temps écoulé depuis la dernière mise à jour en secondes.
Si vous voulez qu’un acteur se déplace vers la gauche, quel angle en radians devriez-vous utiliser?
Pour un déplacement vers la gauche, l’angle doit être de π radians (180°), car cos(π) = -1 et sin(π) = 0, donc il y aura un mouvement négatif sur l’axe X.
Comment calculer la distance entre deux acteurs en 2D?
On utilise le théorème de Pythagore:
distance = sqrt((acteur2.x - acteur1.x)² + (acteur2.y - acteur1.y)²)
En C++:
float distance = sqrtf(powf(acteur2.x - acteur1.x, 2) + powf(acteur2.y - acteur1.y, 2));
Quelles sont les valeurs de cosinus et sinus pour les angles principaux du cercle trigonométrique (0°, 90°, 180°, 270°)?
0° (0 rad): cos = 1, sin = 0
90° (π/2 rad): cos = 0, sin = 1
180° (π rad): cos = -1, sin = 0
270° (3π/2 rad): cos = 0, sin = -1