标签:style blog http color io os ar for sp
开始看计算机图形学和OpenGL,挺有意思就自己随便写了一些效果。
以中间点坐标为圆心,计算每一点和圆心距离,根据距离算出一个RGB值,于是整体便呈现环形分布。
代码如下:
1 #include <math.h> 2 3 #include <GL/glut.h> 4 5 void init() 6 { 7 glClearColor(0.0, 0.0, 0.0, 0.0); 8 glMatrixMode(GL_PROJECTION); 9 gluOrtho2D(0.0, 600.0, 0.0, 600.0); 10 } 11 12 void lineSegment() 13 { 14 glClear(GL_COLOR_BUFFER_BIT); 15 double r = 300.0; 16 glBegin(GL_POINTS); 17 for (int i=0; i<=600; ++i) for (int j=0; j<=600; ++j) { 18 double dis = sqrt((i-r)*(i-r)+(j-r)*(j-r)); 19 double diff = fabs(dis-r); 20 double depth = 1 - diff / r; 21 depth *= depth; 22 depth *= depth; 23 depth *= depth; 24 glColor3f(1-depth, depth, depth); 25 glVertex2i(i, j); 26 } 27 glEnd(); 28 glFlush(); 29 } 30 31 int main(int argc, char *argv[]) 32 { 33 glutInit(&argc, argv); 34 glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); 35 glutInitWindowPosition(0, 0); 36 glutInitWindowSize(600, 600); 37 glutCreateWindow("OpenGL 3D View"); 38 init(); 39 glutDisplayFunc(lineSegment); 40 glutMainLoop(); 41 return 0; 42 }
运行效果如下,具体参数懒得调了,随便调调就能出不同的效果。
标签:style blog http color io os ar for sp
原文地址:http://www.cnblogs.com/huanglianjing/p/4048028.html