【OpenGL】OpenGL系列——02坐标转换

来源:互联网 发布:澳洲工作 知乎 编辑:程序博客网 时间:2024/06/07 05:36


void myinit(void){      glClearColor(0.8, 0.8, 0.8, 1.0);      glShadeModel(GL_FLAT);       glPointSize(20.0);  }      void drawTriangle(void){      //glLineWidth(5.0);      //glColor3f(1.0, 1.0, 0.0);      //glBegin(GL_LINE_LOOP);      //  glVertex2f(50.0, 10.0);      //  glVertex2f(150.0, 10.0);      //  glVertex2f(10.0, 50.0);      //glEnd();        glColor3f(0.5, 0.6, 0.2);      glRectf(100.0, 100.0, 200.0, 300.0);    }    void display(void){      glClear(GL_COLOR_BUFFER_BIT);        glColor3f(1.0, 1.0, 0.0);      glLineWidth(20.0);      glEnable(GL_LINE_SMOOTH);      glBegin(GL_LINES);      glVertex2f(50.0, 100.0);      glVertex2f(150.0, 150.0);      glEnd();      glDisable(GL_LINE_SMOOTH);        glLineWidth(100.0);      glBegin(GL_LINES);      glVertex2f(50.0, 150.0);      glVertex2f(150.0, 200.0);      glEnd();        glLineWidth(5.0);        glColor3f(1.0, 0.0, 1.0);      glEnable(GL_LINE_STIPPLE);      glLineStipple(1, 0x1C47);      glBegin(GL_LINES);      glVertex2f(250.0, 100.0);      glVertex2f(150.0, 250.0);      glEnd();      glDisable(GL_LINE_STIPPLE);        glColor3f(0.5, 0.6, 0.2);      glRectf(10.0, 30.0, 100.0, 80.0);        drawTriangle();      glTranslatef(200.0, 200.0, 0.0);      //glRotatef(180.0, 0.0, 0.0, 1.0);      glScalef(0.5, 0.5, 0.0);      drawTriangle();      glFlush();  }    void myReshape(GLsizei w, GLsizei h){      glViewport(0, 0, w, h);      glMatrixMode(GL_PROJECTION);      glLoadIdentity();            gluOrtho2D(0, (GLfloat)w, 0, (GLfloat)h);            glMatrixMode(GL_MODELVIEW);    }    int main(int argc, char *argv[]) {      glutInit(&argc, argv);      glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);      glutInitWindowSize(400, 400);      glutInitWindowPosition(700, 500);      glutCreateWindow("color");      myinit();      glutReshapeFunc(myReshape);      glutDisplayFunc(display);      glutMainLoop();      return 0;  }  


void myinit(void){glClearColor(0.8, 0.8, 0.8, 1.0);glShadeModel(GL_FLAT); }void display(void){glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0, 1.0, 0.0);glutWireTeapot(1.0);glFlush();}void myReshape(GLsizei w, GLsizei h){glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();glFrustum(-1.0, 1.0, -1.0, 1.0, 1.0, 10.0);glMatrixMode(GL_MODELVIEW);glTranslatef(0.0, 0.0, -2.0);}int main(int argc, char *argv[]) {glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutInitWindowSize(400, 400);glutInitWindowPosition(700, 500);glutCreateWindow("color");myinit();glutReshapeFunc(myReshape);glutDisplayFunc(display);glutMainLoop();return 0;}


void myinit(void){glClearColor(0.8, 0.8, 0.8, 1.0);glShadeModel(GL_FLAT); }void display(void){GLdouble equ0[4] = { 1.0, 0.0, 0.0, 0.0 };GLdouble equ1[4] = { 1.0, 1.0, 0.0, 0.0 };glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0, 1.0, 0.0);glClipPlane(GL_CLIP_PLANE0, equ0); //指定切割几何物体平面glEnable(GL_CLIP_PLANE0);glClipPlane(GL_CLIP_PLANE1, equ1);glEnable(GL_CLIP_PLANE1);glutWireTeapot(1.0);glFlush();}void myReshape(GLsizei w, GLsizei h){glViewport(0, 0, w, h);glMatrixMode(GL_PROJECTION);glLoadIdentity();//glFrustum(-1.0, 1.0, -1.0, 1.0, 1.5, 20.0);  //透视矩阵gluPerspective(60.0, (GLfloat)w / (GLfloat)h, 1.0, 20.0);glMatrixMode(GL_MODELVIEW);glTranslatef(0.0, 0.0, -3.0);}int main(int argc, char *argv[]) {glutInit(&argc, argv);glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);glutInitWindowSize(400, 400);glutInitWindowPosition(700, 500);glutCreateWindow("color");myinit();glutReshapeFunc(myReshape);glutDisplayFunc(display);glutMainLoop();return 0;}



0 0
原创粉丝点击