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

    xiaoxiao2021-04-16  38

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

    转载请注明原文地址: https://ju.6miu.com/read-672808.html

    最新回复(0)