[OpenGL] Utilisation des NURBS

Utilisation des NURBS [OpenGL] - C++ - Programmation

Marsh Posté le 26-11-2003 à 11:32:43    

            Bonjour,
 
    J'essaie d'utiliser les NURBS dans une de mes applications, mais j'ai une problème de compréhension du sujet, j'ai lu quelque document mais c'est encore flou.
 
    Est-ce que quelqu'un aurait un exemple cours et concit ??
 
             Merci d'avance.
 
 
   PS : Google... j'ai utilisé déjà...


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 26-11-2003 à 11:32:43   

Reply

Marsh Posté le 26-11-2003 à 11:56:17    

UP ???


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 26-11-2003 à 11:58:28    

ben up, je veux bien,mais c koi ton pb ?

Reply

Marsh Posté le 26-11-2003 à 12:01:55    

ben c'est que j'arrive po a les afficher, v'la mon code, tout ce qui est initialisation de la fenetre c'est bon (j'ai plein d'objet dedans et ils sont affichés)
 

Code :
  1. // Tracé de la nurbs schématisant l'interconnxion entre les deux cylindres
  2.     m_pNurbsBicylindre = gluNewNurbsRenderer();
  3.     if (m_pNurbsBicylindre)
  4.     {
  5.      double dKnotsU[20];
  6.      double dKnotsV[3];
  7.      double dPtCtrl[3][20][3];
  8.      gluNurbsProperty(m_pNurbsBicylindre, GLU_DISPLAY_MODE, GLU_FILL);
  9.      for (int i = 0; i < 20; i++)
  10.      {
  11.       dKnotsU[i] = (double)i;
  12.       if (i < 3)
  13.       {
  14.        dKnotsV[i] = (double)i;
  15.       }
  16.      }
  17.      for (i = 0; i < 20; i++)
  18.      {
  19.       dPtCtrl[0][i][0] = (m_stAffouillement.dD3 / 2.0) * cos(DTOR((360.0 / 20.0) * i));
  20.       dPtCtrl[0][i][1] = (m_stAffouillement.dD3 / 2.0) * sin(DTOR((360.0 / 20.0) * i));
  21.       dPtCtrl[0][i][2] = sqrt(fabs(pow(m_stAffouillement.dR, 2) - pow((m_stAffouillement.dD3 / 2.0), 2) * pow(sin(DTOR((360.0 / 20.0) * i)), 2))) - m_stAffouillement.dR;
  22.       dPtCtrl[1][i][0] = dPtCtrl[0][i][0];
  23.       dPtCtrl[1][i][1] = dPtCtrl[0][i][1];
  24.       dPtCtrl[1][i][2] = dPtCtrl[0][i][2] / 2.0;
  25.       dPtCtrl[2][i][0] = dPtCtrl[1][i][0];
  26.       dPtCtrl[2][i][1] = dPtCtrl[1][i][1];
  27.       dPtCtrl[2][i][2] = 0.0;
  28.      }
  29.      gluBeginSurface(m_pNurbsBicylindre);
  30.       gluNurbsSurface(m_pNurbsBicylindre, 20, (GLfloat*)dKnotsU, 3, (GLfloat*)dKnotsV, 3, 20 * 3, (GLfloat*)(&dPtCtrl[0][0][0]), 4, 4, GL_MAP2_VERTEX_3);
  31.      gluEndSurface(m_pNurbsBicylindre);
  32.     }


 
Mon problème, je pense qu'il vient des knots, je ne voit pas a quoi ils servent...enfin, je n'arrive pas à les positionner dans la chaîne de tracage d'une NURBS...


Message édité par snipix le 26-11-2003 à 12:17:37

---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 26-11-2003 à 12:07:29    

Le but de ce code, c'est de shématiser la courbe qui représente l'intersection entre les 2 cylindres, l'un de rayon (m_stAffouillement.dD3 / 2.0) et l'autre de rayon m_stAffouillement.dR.
 
Ca doit representer une crêpe en l'air....


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 26-11-2003 à 12:17:23    

j'allais dire, les nurbs et tous les bordels polynominaux, c'est pas openGL mais GLU.
 
d'un point de vue plus constructif, j'ai la flemme de lire ton programme, mais http://www.opengl.org/developers/code/mjktips/grid/ possède un programme très court.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 26-11-2003 à 12:18:00    

merci, je vais voir...


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 26-11-2003 à 12:19:53    

SnipiX a écrit :


Ca doit representer une crêpe en l'air....


 
oublie pas le nutella mapping [:huit]
 
(m'etonnerais quand meme qu'il y ait rien sur le net, genre les nehe/opengl.org & cie)

Reply

Marsh Posté le 26-11-2003 à 12:26:51    

si, j'ai trouve un exemple, que j'ai suivi d'ailleurs, mais sans succès, sa compile, je le lance, mais ca affiche rien, j'utilise tout le reste sauf la nurbs en question


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 26-11-2003 à 14:38:30    

C'EST BON !!!! J'AI TROUVe UN EXEMPLE !!!
 
Merci a ceux qui ont répondu.


---------------
La raison du plus fort est toujours la plus forte.... Parce que c'est comme ça NA !
Reply

Marsh Posté le 26-11-2003 à 14:38:30   

Reply

Marsh Posté le 26-11-2003 à 14:53:11    

vazy, garde le pas pour toi :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed