2009-11-26 4 views

ответ

8

Линии могут быть текстурированы, как треугольники. Включите альфа-тестирование, примените альфа-текстуру, настройте некоторые координаты текстуры и наслаждайтесь.

+0

Можете ли вы предоставить код для того же – Mayank

-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 *. –

+0

Это похоже на копию кода, возможно, из http://3dengine.org/Drawing_dotted_lines_%28OpenGL%29 – najjarammar

1

На самом деле я понял пристрастились линии или пунктирная линия, используя для петель, но она до сих пор делает не смысл использовать его в качестве связующего звена типа линии к способу рисования, вот код моим пристрастились линии и пунктирный линия ниже: пристрастилась линии:

(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); 
} 

Конечно, вы можете видеть, что код рисует прямоугольник с определенными координатами, дело в том, как определить размер массива динамически для использования метода draw и количество линий для рисования.