Bonjour,
Je suis un peu rouille en géométrie/calcul vectoriel et j'ai un petit problème :
Ayant un cylindre ayant pour origine le centre de sa base inférieure , et comme centre de la base supérieure , j'aimerai savoir comment obtenir deux vecteur orthogonaux quelconques (par quelconque j'entend aléatoire dans le sens ou dans mon programme j'ai besoin de deux vecteurs séparés par un angle tire aléatoirement) a l'axe de ce cylindre.
Pour ce faire j'imagine que je dois en premier lieu me servir de l’équation du plan , puisque la base du cylindre est forcement orthogonale a l'axe du cylindre. Je suppose aussi que je peux utiliser la fonction rand en C/C++ pour avoir un premier vecteur orthogonal en faisant quelque-chose comme :
Code c : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 vec3 x = centre_base_cylindre vec3 v = axe_cylindre; srand(time(NULL)); vec3 vec_ortho_e1 = vec3(x.x + rand(), x.y + rand(), x.z + rand()); float theta = rand()%(359-1 + 1) + 1;; // pour avoir un angle entre 1 et 359 degres
Je sais donc calculer mon premier vecteur orthogonal (et donc coplanaire a la base). Par contre je sais pas trop comment m'y prendre pour le deuxieme, pour qu'il y aie un angle theta aleatoire entre ces deux vecteurs coplanaires.
Merci d'avance !
Muska17
Partager