Advertisement
marwanpro

cone + cylindre

Oct 25th, 2017
440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. void Viewer::init_cylindre()
  2. {
  3.     m_cylindre = Mesh(GL_TRIANGLE_STRIP);
  4.     m_cylindre.color(1, 1, 1);
  5.     int div = 25;
  6.     float rota = M_PI * 2 / div;
  7.     for (int i = 0; i <= div; i++)
  8.     {
  9.         float alpha = rota * i;
  10.         m_cylindre.normal(Vector(cos(alpha), 0, sin(alpha)));
  11.         m_cylindre.vertex(Point(cos(alpha), 0, sin(alpha)));
  12.         m_cylindre.normal(Vector(cos(alpha), 0, sin(alpha)));
  13.         m_cylindre.vertex(Point(cos(alpha), 2, sin(alpha)));
  14.     }
  15. }
  16.  
  17. void Viewer::init_couvercle()
  18. {
  19.     m_couvercle = Mesh(GL_TRIANGLE_FAN);
  20.     m_couvercle.color(1, 1, 1);
  21.     int div = 25;
  22.     float rota = M_PI * 2 / div;
  23.     m_couvercle.vertex(Point(0, 0, 0));
  24.     m_couvercle.normal(Vector(0, 1, 0));
  25.     for (int i = 0; i <= div; i++)
  26.     {
  27.         float alpha = rota * i;
  28.         m_couvercle.vertex(Point(cos(alpha), 0, sin(alpha)));
  29.     }
  30. }
  31.  
  32. void Viewer::init_cone()
  33. {
  34.     m_cone = Mesh(GL_TRIANGLE_FAN);
  35.     m_cone.color(1, 1, 1);
  36.     int div = 25;
  37.     float rota = M_PI * 2 / div;
  38.     m_cone.vertex(Point(0, 1, 0));
  39.     m_cone.normal(Vector(0, 1, 0));
  40.     for (int i = 0; i <= div; i++)
  41.     {
  42.         const float alpha = rota * i;
  43.         m_cone.vertex(Point(cos(alpha), 0, sin(alpha)));
  44.     }
  45. }
  46.  
  47. int Viewer::render()
  48. {
  49.     /* ... */
  50.  
  51.     //Cylindre
  52.     gl.model(Translation(0, 0, 0));
  53.     gl.draw(m_cylindre);
  54.  
  55.     gl.model(-1 * Translation(0, 2, 0)); // Face Haut
  56.     gl.draw(m_couvercle);
  57.     gl.model(Translation(0, 0, 0)); // Face Bas
  58.     gl.draw(m_couvercle);
  59.    
  60.  
  61.     // Cone -- J'ai mis en coordonnées de base 2,0,0 pour qu'il soit à coté du cylindre
  62.     gl.model(-1*Translation(2, 0, 0));
  63.     gl.draw(m_cone);
  64.     gl.model(Translation(-2, 0, 0)); // Face Bas, -2 ici car on fait -1* translation pour le m_cone
  65.     gl.draw(m_couvercle);
  66.  
  67.     return 1;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement