colorer surface bezier opengl c++
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

colorer surface bezier opengl c++



  1. #1
    invite85257474

    colorer surface bezier opengl c++


    ------

    bonjour
    j'utilise opengl avec c++
    avec le code suivant j'ai dessiner presque un demi cercle et je veux colorer la surface generé j'ai mis un glColor3f dans le for mais ca na pas coloré
    la glColor avant le code de bezier permet juste de colorer les lignes de la courbe pas la surface


    Code:
    glColor3ub(255,0,0);      
    	glEnable(GL_MAP1_VERTEX_3); //active l'évaluateur 1D des sommets 3D
    	GLfloat ctrlpoints[4][3] ={
    	{-1.54, 3.3, 0.5}, {-1.54, 3.4, 0.7},
                {-1.54, 3.5, 0.7},{-1.54, 3.6, 0.5}};
    	glMap1f(GL_MAP1_VERTEX_3, 0.0, 1.0, 3, 4, &ctrlpoints[0][0]);
    	glBegin(GL_LINE_STRIP);
    	glColor3ub(255,0,0);
    	int n = 933 ;
    	  for (i = 0; i <= n; i++)
    		  
    		glEvalCoord1f((GLfloat) i/((float)n));
    	glEnd();

    est ce que vous avez une idée

    merci

    -----

  2. #2
    Xoxopixo

    Re : colorer surface bezier opengl c++

    Bonjour,

    c'est exactement ce qui se passe quand on trace des lignes GL_LINES en utilisant un glbegin(GL_LINES), la couleur est définie pour une ligne.
    Le problème que je vois ici, c'est que tu traces un bezier à 1D, c'est à dire une courbe.
    Même si tu refermes la courbe sur elle-même, ça reste une courbe et le render ne calcule pas une surface.
    Il ne peut donc pas appliquer une couleur sur une surface inexistante.

    Il faudrait utiliser la version 2D des "courbes" beziers.
    Tu utilises ça :
    Code:
    GL_MAP1_VERTEX_3
    Essai avec ça.

    Code:
    GL_MAP2_VERTEX_3
    Un exemple ici :
    Citation Envoyé par glprogramming
    Two-Dimensional Example: A Bezier Surface
    Example 12-2 draws a wireframe Bezier surface using evaluators, as shown in Figure 12-2. In this example, the surface is drawn with nine curved lines in each direction. Each curve is drawn as 30 segments. To get the whole program, add the reshape() and main() routines from Example 12-1.
    http://glprogramming.com/red/chapter12.html
    En bon vivant, rien ne vaut un bonne logique ternaire.

Discussions similaires

  1. colorer carte geo openGL C++
    Par invitec7fd8fb0 dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 29/10/2011, 21h39
  2. Opengl
    Par invite591b481e dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 17/05/2010, 11h39
  3. Point d'une surface de Bézier
    Par invite026537dc dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 15/05/2010, 15h55
  4. Berstein - Bézier
    Par invite90f1d72a dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 05/02/2007, 21h44
  5. polynômes de Bézier
    Par invite58521e4e dans le forum Mathématiques du supérieur
    Réponses: 15
    Dernier message: 06/07/2005, 13h26