Les vecteurs ¶
Vecteur : définition¶
- Le terme vecteur peut signifier plusieurs choses dépendant du contexte.
- En biologie : Décrit un organisme qui transmet une infection d'un hôte à un autre.
- En programmation : Décrit une structure de tableau de données.
- En mathématique, un vecteur est un concept permettant de représenter une magnitude (longueur) et une direction.
- Un vecteur peut être représenté graphiquement par une flèche : la longueur indique la magnitude, l'orientation indique la direction.

Vecteur : utilité¶
- Dans le monde des jeux vidéo, réalité virtuelle ou autre simulation, les vecteurs sont utilisés partout.
- C'est une connaissance fondamentale à la programmation de jeux et d'applications multimédia.
- C'est un bloc de construction nécessaire pour toute application ayant des implications mathématiques.
- Exemples d'utilisation :
- Position d'objets dans l'espace
- Vitesse et direction de déplacement
- Forces physiques (gravité, vent, friction)
- Calcul de trajectoires et de collisions
Vecteur : exemple de problème sans vecteurs¶
- Voici du code représentant une balle qui rebondit aux limites de l'écran
- Fichier pour l'exécuter sur votre poste

Problèmes identifiés :
- Utilisation de plusieurs variables X et Y similaires :
- Position X et Y
- Vitesse X et Y
- Complexité de gestion de toutes ces variables
- Imaginez maintenant que vous devez gérer l'accélération, la position d'une cible, le vent et la friction...
- Variables probables :
accelX,accelY,targetX,targetY,windX,windY,frictionX,frictionY - En 2D : 2 variables par concept
- En 3D : 3 variables par concept → explosion du nombre de variables!
- Variables probables :
Simplification avec les vecteurs¶
| **Sans vecteurs (verbeux)** | **Avec vecteurs (concis)** |
| ✅ **Avantages** : Code plus lisible, moins d'erreurs, opérations mathématiques simplifiées | |
Vecteur : la classe PVector¶
- Processing offre la classe
PVectorqui représente un vecteur. - Propriétés principales :
x: Composante horizontaley: Composante verticalez: Composante en profondeur (pour la 3D, optionnelle)
Création et utilisation :
Vecteur : déplacement et mouvement¶
Concepts clés :
- Mouvement = déplacement dans le temps
- Vitesse = vecteur représentant un déplacement par unité de temps
- Translation = addition de la vitesse à la position
Formule fondamentale :
Rappel : L'addition de vecteurs se fait composante par composante, c'est-à-dire :
Exemple complet :
Comparaison sans vecteur (beaucoup plus verbeux) :
Exercice 1 : Balle qui rebondit avec vecteurs¶
Objectif : Créer une animation de balle qui rebondit en utilisant des vecteurs.
Instructions :
-
Créez deux variables globales de type
PVector:position: pour la position de la ballevitesse: pour la vitesse de déplacement
-
Dans
setup():- Initialisez
positionau centre de l'écran - Initialisez
vitesseavec des valeurs comme (4, 3)
- Initialisez
-
Dans
draw():- Effacez l'écran avec
background(240) - Déplacez la balle avec
position.add(vitesse) - Dessinez la balle à la position actuelle
- Gérez les rebonds en inversant les composantes appropriées
- Effacez l'écran avec
Code de base :
Bonus :
- Ajoutez de la couleur qui change selon la direction
- Laissez une traînée en utilisant
background(240, 20)au lieu debackground(240) - Ajoutez plusieurs balles avec des vitesses différentes
Opérations mathématiques avec les vecteurs¶
Addition et soustraction¶
Multiplication et division par un scalaire¶
Utilité : Changer la vitesse sans changer la direction.
Distance entre deux points¶
Rotation d'un vecteur¶
Angle entre deux vecteurs¶
Applications pratiques¶
- Jeux de tir : Calculer la trajectoire des projectiles
- Animation : Mouvements fluides et naturels
- Intelligence artificielle : Comportements de groupe (boids)
- Physique : Simulation de forces, collisions
- Interface utilisateur : Animations d'éléments GUI
Références¶
- À lire pour le prochain cours
- https://natureofcode.com/book/introduction/
- https://natureofcode.com/book/chapter-1-vectors/