Bonjour à tous,
Je débute en langage C++ et j'aurais besoin d'un coup de pouce de votre part, pour un code.
Je souhaite pouvoir calculer la perte d'énergie d'une particule traversant un volume. J'ai déjà la partie du code qui calcule l'énergie perdue. Ce dont j'ai besoin est la modélisation du volume et des points d'entrées et sorties de la particule.
Plus clairement, l'idée où je bloque est la suivante :
- créer un repère cartésien
- créer une boite, en forme de parallépipède, composée de 6 faces centrée sur le repère
- Un point de coordonnées (x1,y1) sera généré aléatoirement sur une des 6 faces
- Un second point de coordonnées (x2,y2) sera aussi généré aléatoirement sur une des 6 faces
- Un segment sera tracé entre ces deux points
Voici l'ébauche algorithmique du programme :
Le problème ensuite vient du fait que je ne vois pas comment je peux m'assurer que les 2 points (entrée et sortie) de la boite sont bien situés sur les faces du volume et comment tracer le segment entre ces 2 points ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 double Dim_BOX[3]; //Définition de la boite : Dim_BOX[0] = 10 ; // axe x Dim_BOX[1] = 10 ; // axe y Dim_BOX[2] = 500 ; //axe z // Génération aléatoire des coordonnées (x1,y1) et (x2,y2) sur la face 1 x1_face1 = rand() % Dim_BOX[0] ; y1_face1 = rand() % Dim_BOX[2] ; x2_face1 = rand() % Dim_BOX[0] ; y2_face1 = rand() % Dim_BOX[2] ; // Génération aléatoire des coordonnées (x1,y1) et (x2,y2) sur la face 2 x1_face2 = rand() % Dim_BOX[0] ; y1_face2 = rand() % Dim_BOX[2] ; x2_face2 = rand() % Dim_BOX[0] ; y2_face2 = rand() % Dim_BOX[2] ; // Génération aléatoire des coordonnées (x1,y1) et (x2,y2) sur la face 3 x1_face3 = rand() % Dim_BOX[1] ; y1_face3 = rand() % Dim_BOX[2] ; x2_face3 = rand() % Dim_BOX[1] ; y2_face3 = rand() % Dim_BOX[2] ; // Génération aléatoire des coordonnées (x1,y1) et (x2,y2) sur la face 4 x1_face4 = rand() % Dim_BOX[1] ; y1_face4 = rand() % Dim_BOX[2] ; x2_face4 = rand() % Dim_BOX[1] ; y2_face4 = rand() % Dim_BOX[2] ; // Génération aléatoire des coordonnées (x1,y1) et (x2,y2) sur la face 5 x1_face5 = rand() % Dim_BOX[0] ; y1_face5 = rand() % Dim_BOX[1] ; x2_face5 = rand() % Dim_BOX[0] ; y2_face5 = rand() % Dim_BOX[1] ; // Génération aléatoire des coordonnées (x1,y1) et (x2,y2) sur la face 6 x1_face6 = rand() % Dim_BOX[0] ; y1_face6 = rand() % Dim_BOX[1] ; x2_face6 = rand() % Dim_BOX[0] ; y2_face6 = rand() % Dim_BOX[1] ;
Si quelque chose n'est pas clair, n'hésitez pas.
Je vous remercie par avance pour votre contribution,
Bien cordialement,
Syuhkua
Partager