OpenGL基础(一)2. 画多边形之颜色渐变的圆 月食效果

文章原创 转载请标明出处
---------------------------------------------------
画圆的函数中 RGB颜色值变化
几种效果展示
黑白色
void drawCircle(GLdouble radius, GLdouble divide)
{
    
    for (int k = 0; k < divide; k++)
    {
        x = radius* cos((k / divide) * 2 * PI);
        y = radius* sin((k / divide) * 2 * PI);
        glColor3f((k/divide), (k / divide), (k / divide));
        glVertex3d(x, y, 0.0);
    }
}

翠绿色 

 1 void drawCircle(GLdouble radius, GLdouble divide)
 2 {
 3     
 4     for (int k = 0; k < divide; k++)
 5     {
 6         x = radius* cos((k / divide) * 2 * PI);
 7         y = radius* sin((k / divide) * 2 * PI);
 8         glColor3f((k / divide), 1.0, (k / divide));
 9         glVertex3d(x, y, 0.0);
10     }
11 }

紫色

glColor3f((k / divide), 0.0, (k / divide) );

 

完整程序代码如下

 1 //Five edges polygon.
 2 //As less code as possible.
 3 
 4 #include "stdafx.h"
 5 #include<gl/glut.h>
 6 #include<stdlib.h>
 7 #include<iostream>
 8 #include<math.h>
 9 
10 const GLdouble PI = 3.1415926;
11 static GLdouble x, y;
12 using namespace std;
13 
14 void drawCircle(GLdouble radius, GLdouble divide)
15 {
16     
17     for (int k = 0; k < divide; k++)
18     {
19         x = radius* cos((k / divide) * 2 * PI);
20         y = radius* sin((k / divide) * 2 * PI);
21         glColor3f(0.5*(k / divide), (k / divide), (k / divide) );
22         glVertex3d(x, y, 0.0);
23     }
24 }
25 
26 void init(void)
27 {
28     glClearColor(0.0, 0.0, 0.0, 0.0);
29 }
30 
31 void display(void)
32 {
33     glClear(GL_COLOR_BUFFER_BIT);
34 
35 
36     glBegin(GL_POLYGON);
37     
38     drawCircle(0.8, 100);
39 
40     glEnd();
41     glFlush();
42 
43 }
44 
45 
46 int main(int argc, char** argv)
47 {
48     glutInit(&argc, argv);
49     glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
50     glutInitWindowPosition(500, 300);
51     glutInitWindowSize(500, 500);
52     glutCreateWindow("DrawGeometry");
53     init();
54     glutDisplayFunc(display);
55     glutMainLoop();
56     return 0;
57 }
View Code

posted @ 2017-04-12 19:33  皓琪  Views(2825)  Comments(0)    收藏  举报