2009-11-26 67 views

回答

8

線條可以紋理化,就像三角形一樣。啓用alpha測試,應用alpha紋理,設置一些紋理座標並欣賞。

+0

你可以提供一些相同的代碼 – Mayank 2014-04-21 05:12:52

-5
glPushAttrib(GL_ENABLE_BIT); 
# glPushAttrib is done to return everything to normal after drawing 

glLineStipple(1, 0xAAAA); # [1] 
glEnable(GL_LINE_STIPPLE); 
glBegin(GL_LINES); 
glVertex3f(-.5,.5,-.5); 
glVertex3f(.5,.5,-.5); 
glEnd(); 

glPopAttrib(); 
+0

OpenGL * ES *不支持大部分代碼。 – 2011-03-27 05:05:18

+0

這看起來像是複製粘貼的一段代碼,也許來自http://3dengine.org/Drawing_dotted_lines_%28OpenGL%29 – najjarammar 2015-01-28 21:48:24

1

其實我已經實現了點線或使用for循環中的虛線,但它仍然讓非必要使用它作爲一個線型鏈接的繪製方法,這裏是我的寵愛行的代碼和虛線下面行: 點線:

(void)drawVerticalDotedInternalGrid{ 
    float a,b; 
    int drawCount =0; 
    GLfloat dotedInternalGrid[1296]; 

    for (a = -0.5f; a <= 0.5f; a +=0.5f) { 
     for (b = -0.875f; b <=0.925f; b += 0.025f) 
     {   
      dotedInternalGrid[drawCount] = b; 
      drawCount++; 
      dotedInternalGrid[drawCount] = a; 
      drawCount++; 
     };  
    }; 
    glPointSize(1.0f); 
    glColor4f(0.863f,0.863f,0.863f,0.8f); //line color 
    glVertexPointer(2, GL_FLOAT, 0, dotedInternalGrid); 
    glEnableClientState(GL_VERTEX_ARRAY); 
    glDrawArrays(GL_POINTS, 0, 648);   
    glDisableClientState(GL_VERTEX_ARRAY); 
} 

虛線:

(void)drawVerticalDashedInternalGridH{ 
    GLfloat dashedLine[1296]; 
    float a,b; 
    int i =0; 

    //-0.4----0.4 // -0.875----0.900 
    for (a = -0.4f; a <= 0.4f; a +=0.1f) { 
     for (b =-0.825f; b <=0.950f; b+=0.025f) {       
      dashedLine[i] = b;    
      i++; 
      dashedLine[i] = a; 
      i++; 
     }; 
    }; 

    //glLineWidth(1.0f); 
    glColor4f(0.863f,0.863f,0.863f,1.f); //line color 
    glVertexPointer(2, GL_FLOAT, 0, dashedLine); 
    glEnableClientState(GL_VERTEX_ARRAY); 
    glDrawArrays(GL_LINES, 0, 648); 
    glDisableClientState(GL_VERTEX_ARRAY); 
} 

當然你可以看到代碼在某個座標的矩形區域中繪製,麻煩的事情是如何動態地繪製出這個數組的大小以及繪製方法的用途以及繪製的行數。