📄 single.c
字号:
// Scissor.c// OpenGL SuperBible, 3rd Edition// Richard S. Wright Jr.// rwright@starstonesoftware.com#include "../../Common/OpenGLSB.h" // System and OpenGL Stuff#include <math.h> ///////////////////////////////////////////////////////////// Called to draw scenevoid RenderScene(void) { static GLdouble dRadius = 0.1; static GLdouble dAngle = 0.0; // Clear blue window glClearColor(0.0f, 0.0f, 1.0f, 0.0f); if(dAngle == 0.0) glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); glVertex2d(dRadius * cos(dAngle), dRadius * sin(dAngle)); glEnd(); dRadius *= 1.01; dAngle += 0.1; if(dAngle > 30.0) { dRadius = 0.1; dAngle = 0.0; } glFlush(); }///////////////////////////////////////////////////////////// Trigger a repaintvoid Timer(int value) { glutTimerFunc(50,Timer, 0); glutPostRedisplay(); }///////////////////////////////////////////////////////////// Set viewport and projectionvoid ChangeSize(int w, int h) { // Prevent a divide by zero if(h == 0) h = 1; // Set Viewport to window dimensions glViewport(0, 0, w, h); // Set the perspective coordinate system glMatrixMode(GL_PROJECTION); glLoadIdentity(); // Set 2D Coordinate system gluOrtho2D(-4.0, 4.0, -3.0, 3.0); // Modelview matrix reset glMatrixMode(GL_MODELVIEW); glLoadIdentity(); }///////////////////////////////////////////////////////////// Program entry pointint main(int argc, char* argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB); glutInitWindowSize(800,600); glutCreateWindow("OpenGL Single Buffered"); glutReshapeFunc(ChangeSize); glutDisplayFunc(RenderScene); glutTimerFunc(50,Timer, 0); glutMainLoop(); return 0; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -