读书人

opengl扁圆 填充色 源代码

发布时间: 2013-10-27 15:21:50 作者: rapoo

opengl椭圆 填充色 源代码
#include<windows.h>
#include<math.h>
#include <gl/Glut.h>
#include <iostream>

using namespace std;



void myDisplay(void);
void myInit(void);
void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top);
void drawEllipse(GLint W, GLint H, GLdouble clr[3]);

const GLint screenWidth = 640;
const GLint screenHeight = 640;
const GLdouble PI = 3.1415926;
static GLint size = 300;

int main(int argc, char ** argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(screenWidth,screenHeight);
glutInitWindowPosition(100,100);
glutCreateWindow("Ellipse");

glutDisplayFunc(myDisplay);
myInit();
glutMainLoop();

return 0;
}

void setWindow(GLdouble left, GLdouble right, GLdouble botton, GLdouble top){
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(left,right,botton,top);
}


void myDisplay(void){
glClear(GL_COLOR_BUFFER_BIT);
setWindow(0.0,(GLdouble)screenWidth,0.0,(GLdouble)screenHeight);

GLdouble color [3] = {0.0f,0.0f,0.0f};
drawEllipse(250,180,color);
GLdouble color2 [3] = {1.0f,1.0f,1.0f};
drawEllipse(170,170,color2);
GLdouble color3 [3] = {0.0f,0.0f,0.0f};
drawEllipse(160,100,color3);
GLdouble color4 [3] = {1.0f,1.0f,1.0f};
drawEllipse(90,90,color4);

}

void drawEllipse(GLint W, GLint H, GLdouble clr[3]){

glColor3f(clr[0],clr[1],clr[2]);
/*glBegin(GL_LINE_LOOP);

for (GLdouble i = 0.0; i< 2*PI ; i += 0.01 )
{
glVertex2d(310+W * cos(i), 310+H * sin(i));
}

glEnd();
*/


glBegin(GL_LINES);

for (GLdouble i = 0.00; i< 2*PI ; i += 0.005 )
{
glVertex2d(310.0,310.0);
glVertex2d((GLdouble)310+W * cos(i),(GLdouble)310+H * sin(i));
}
glEnd();

glFlush();
}

void myInit(void){
glClearColor(1.0,1.0,1.0,0.0);
glColor3f(0.0f, 0.0f, 0.0f);
glLineWidth(2.0);
glPointSize(1.0);

}



opengl扁圆 填充色 源代码

读书人网 >编程

热点推荐