Generation de nombres aleatoires et manipulation de vecteurs en JavaScript

Apprenez a generer des nombres aleatoires avec variance et manipuler des vecteurs en JavaScript : atan2, cos, sin et hypot expliques avec des exemples.

Mahmoud DEVO
Mahmoud DEVO
December 27, 2025 2 min read
Generation de nombres aleatoires et manipulation de vecteurs en JavaScript

Génération de nombres aléatoires et manipulation de vecteurs en JavaScript

Introduction

La génération de nombres aléatoires est une tâche courante dans le développement de jeux, simulations ou autres applications nécessitant un comportement imprévisible. De même, la manipulation de vecteurs est essentielle pour les applications graphiques, les jeux, et bien d’autres cas d’utilisation. Dans ce tutoriel, nous allons aborder les deux sujets en profondeur, avec des exemples de code concis et pratiques.

Génération de nombres aléatoires

La fonction Math.random() génère un nombre aléatoire compris entre 0 (inclus) et 1 (exclus). Pour obtenir une gamme de valeurs plus large, on peut additionner plusieurs appels à Math.random(). Cependant, cela peut devenir rapidement compliqué. Voici une fonction qui permet de sélectionner la variance souhaitée :

/**
 * Génère un nombre aléatoire avec la variance v.
 *
 * @param {number} v - Nombre d'appels à Math.random() additionnés.
 */
function randomG(v) {
  let r = 0;
  for (var i = v; i > 0; i--) {
    r += Math.random();
  }
  return r / v;
}

En utilisant cette fonction, vous pouvez obtenir des nombres aléatoires avec une gamme plus large en ajustant la valeur de v.

Manipulation de vecteurs

Direction d’un vecteur ou d’une ligne

La fonction Math.atan2() permet de calculer l’angle entre deux points. Elle prend en compte le sens des aiguilles d’une montre pour les angles positifs.

// Calcul du direction d'un vecteur
var vec = { x: 4, y: 3 };
var dir = Math.atan2(vec.y, vec.x);

// Calcul de la direction d'une ligne
var line = { p1: { x: 100, y: 128 }, p2: { x: 320, y: 256 } };
var dir = Math.atan2(line.p2.y - line.p1.y, line.p2.x - line.p1.x);

Création d’un vecteur à partir de la direction et de la distance

La fonction Math.cos() permet de calculer la composante x d’un vecteur donné sa direction en radians et sa longueur. De même, la fonction Math.sin() permet de calculer la composante y.

// Création d'un vecteur à partir de la direction et de la distance
var dir = 1.4536; // direction en radians
var dist = 200;
var vec = {};
vec.x = Math.cos(dir) * dist;
vec.y = Math.sin(dir) * dist;

Calcul de la distance entre deux points

La fonction Math.hypot() permet de calculer la distance entre deux points. Elle prend en compte les composantes x et y du vecteur qui les relie.

// Calcul de la distance entre deux points
var v1 = { x: 10, y: 5 };
var v2 = { x: 20, y: 10 };
var distance = Math.hypot(v2.x - v1.x, v2.y - v1.y);

Fonctions périodiques

Les fonctions Math.sin() et Math.cos() sont cycliques avec une période de 2*PI radians (360 degrés). Elles sont utiles pour créer des ondes périodiques.

// Création d'une onde simple
function oscillator(time, frequency = 1) {
  return Math.sin(time * 2 * Math.PI * frequency);
}

Conclusion

Dans cet article, nous avons vu comment générer des nombres aléatoires avec une gamme plus large et comment manipuler les vecteurs pour calculer la direction d’un vecteur ou d’une ligne, créer un vecteur à partir de la direction et de la distance, calculer la distance entre deux points, et créer des fonctions périodiques. Ces fonctionnalités sont essentielles dans beaucoup d’applications, et nous espérons que cet article vous a aidé à les comprendre et à les utiliser correctement.

Prochaines étapes

  • Explorer d’autres fonctionnalités mathématiques disponibles en JavaScript.
  • Utiliser ces connaissances pour résoudre des problèmes spécifiques dans vos applications.
Advertisement

In-Article Ad

Dev Mode

Share this article

Mahmoud DEVO

Mahmoud DEVO

Senior Full-Stack Developer

I'm a passionate full-stack developer with 10+ years of experience building scalable web applications. I write about Vue.js, Node.js, PostgreSQL, and modern DevOps practices.

Enjoyed this article?

Subscribe to get more tech content delivered to your inbox.

Related Articles