Bonjour tout le monde, je suis en train d'implémenter un systeme de particules.
Pour se faire, on définit un vecteur d'émission avec ses coordonnées sphériques rho,theta et phi et on utilise deux variables pour déterminer l'ouverture des angles(ThetaVariance et PhiVariance) pour obtenir ainsi un volume d'émission.
Prenons un exemple pour situer le probleme.
On définit une ouverture de thetaVariance= 0 et PhiVariance!=0, ainsi on devrait obtenir comme volume d'émetteur une section d'un disque.
Malheureusement j'obtiens une section de cône avec .
Lorsque que l'on fait la meme opération sur mais avec phiVariance=0 et thetaVariance!=0 on obtient une section d'un disque.
Donc ça marche pour theta mais pas pour phi .....
Voici le code qui détermine les coordonnées des particules (les coordonnées des particules sont stockées dans celles-ci en coordonnées cartésiennes):
//clacul de la position
float rho,phi,theta;
rho=rand()%(static_cast<int>(Direction[0])+1);
signe=rand()%2;
if(signe) signe=1;
else signe=-1;
phi=Direction[2]+signe*(rand()%static_cast<int>(PhiVariance+1));
phi=phi*M_PI/180.0;
signe=rand()%2;
if(signe) signe=1;
else signe=-1;
theta=Direction[1]+signe*(rand()%static_cast<int>(TetaVariance+1));
theta=theta*M_PI/180.0;
particule->SetPos(Vector3D(rho*cos(phi)*sin(theta),rho*sin(phi)*sin(theta),rho*cos(theta)));
---------------------------------------------------------------
Direction =le vecteur directeur de l'émetteur en coordonnées sphérik
Direction={rho,theta,phi}
Partager