2013-07-09 890 views
8

Tôi muốn vẽ một chuỗi các đường được kết nối (GL_LINE_STRIP) theo cách sau.Cách vẽ đường sọc được kết nối trong OpenGL như thế này

openGL Strip Lines

Tôi đã cố gắng để mã bằng cách riêng của mình, nhưng không nhận được kết quả mong muốn, vì vậy tôi đến đây, giúp tôi để tìm hiểu nơi mà tôi đã sai. ở đây tôi chỉ đưa ra hàm draw() của tôi.

glBegin(GL_LINE_STRIP); 

    glVertex2f(-4.00, 0.00); 
    glVertex2f(-3.00, 2.00); 
    glVertex2f(-2.00, 0.00); 
    glVertex2f(-1.00, 2.00); 
    glVertex2f(0.0, 0.00); 
    glVertex2f(1.00, 2.00); 
    glVertex2f(2.00, 0.00); 
    glVertex2f(3.00, 2.00); 
    glVertex2f(4.00, 0.00); 

glEnd(); 
+0

bạn đang nhìn thấy gì bây giờ? Hãy thử 'glOrtho (-4.0, + 4.0, -4.0, + 4.0, -1.0, + 1.0)' trước khi vẽ. –

Trả lời

5

Workin' hoàn hảo ở đây:

lines

#include <GL/glut.h> 

void display() 
{ 
    glClear(GL_COLOR_BUFFER_BIT); 

    glMatrixMode(GL_PROJECTION); 
    glLoadIdentity(); 
    glOrtho(-6, 6, -6, 6, -1, 1); 

    glMatrixMode(GL_MODELVIEW); 
    glLoadIdentity(); 

    glColor3ub(255, 255, 255); 
    glBegin(GL_LINE_STRIP); 
    glVertex2f(-4.00, 0.00); 
    glVertex2f(-3.00, 2.00); 
    glVertex2f(-2.00, 0.00); 
    glVertex2f(-1.00, 2.00); 
    glVertex2f(0.0, 0.00); 
    glVertex2f(1.00, 2.00); 
    glVertex2f(2.00, 0.00); 
    glVertex2f(3.00, 2.00); 
    glVertex2f(4.00, 0.00); 
    glEnd(); 

    glutSwapBuffers(); 
} 

int main(int argc, char **argv) 
{ 
    glutInit(&argc, argv); 
    glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); 
    glutInitWindowSize(600, 600); 
    glutCreateWindow("GLUT"); 
    glutDisplayFunc(display); 
    glutMainLoop(); 
    return 0; 
} 
+0

cảm ơn bạn, tôi nghĩ rằng tôi đã bỏ lỡ glOrtho (-6, 6, -6, 6, -1, 1); – user437641