La génération de nombre aléatoire est un sujet assez vaste, les utilisations nombreuses. Je souhaiterais créer un vecteur (3D) aléatoire :
Il est possible de choisir chaque coordonnées de manière aléatoire, par exemple choisir chaque coordonnées entre -1 et 1, de générer un vecteur avec ces coordonnées.
Ceci apportent quelques problèmes :
-> Il est possible de tomber sur le vecteur nul (ce qui n'est pas un problème en soit), mais par la suite si on désir un vecteur de norme, 1 aléatoire, alors notre modé de génération nous retourne un vecteur que l'on ne pourra pas normaliser.
-> Le vecteur ainsi généré n'est pas choisi de manière uniforme dans le volume possible, je m'explique. Ce n'est pas parcequ'on choisi aléatoirement uniformément les coodronnées qu'elles ne vont pas donner une répartition des vecteurs générés aléatoire et uniforme...
La preuve dans le cas décrit au dessus, on constate une répartition non uniforme dans l'espace; on peut distinguer une forte concentration au centre et sur 4 axes qui sont les bisectrices des sommets des tétraèdres formés par les axes sur lesquels ont à choisi les coordonnées aléàtoirement.... (Je ne sais pas si j'ai pas perdu du monde en route la )
Pour faire clair, dans le plan (en 2D) on aurai une forte concentration des vecteurs généré sur deux axes : la première bisectrice, et sa perpendiculaire passant par l'origine du repère...
Ma question :
Comment serai-t-il possible de générer de manière simple et rapide des vecteurs aléàtoires sans ces effets néfastes
j'insiste sur simple et rapide car je présens une certaine dérive possible.
Il faut se dire que cette génération va être appelée dans un jeu, jusqu'à 10000 par frame, donc pas de truc dans le genre trucs de fou.... merci d'avance
Partager