weble 发表于 2010-8-22 23:10

opengl使用两条Bezier曲线绘制的平面鸡蛋

[code][color=#0000FF]#include[/color] [color=#800000]<GL/glut.h>[/color]
[color=#0000FF]#include[/color] [color=#800000]<GL/glu.h>[/color]

[color=#0000FF]float[/color] aVertex[[color=#800080]4[/color]][[color=#800080]3[/color]]={{-[color=#800080]0.5[/color],[color=#800080]0[/color],[color=#800080]0[/color]},{-[color=#800080]0.3[/color],[color=#800080]0.8[/color],[color=#800080]0[/color]},{[color=#800080]0.3[/color],[color=#800080]0.8[/color],[color=#800080]0[/color]},{[color=#800080]0.5[/color],[color=#800080]0[/color],[color=#800080]0[/color]}};
[color=#0000FF]float[/color] bVertex[[color=#800080]4[/color]][[color=#800080]3[/color]]={{-[color=#800080]0.5[/color],[color=#800080]0[/color],[color=#800080]0[/color]},{-[color=#800080]0.66[/color],-[color=#800080]0.6[/color],[color=#800080]0[/color]},{[color=#800080]0.66[/color],-[color=#800080]0.8[/color],[color=#800080]0[/color]},{[color=#800080]0.5[/color],[color=#800080]0[/color],[color=#800080]0[/color]}};

[color=#0000FF]void[/color] display()
{
    glClear(GL_COLOR_BUFFER_BIT);
    glColor4f([color=#800080]0.4[/color],[color=#800080]0.5[/color],[color=#800080]0.7[/color],[color=#800080]1[/color]);
    glBegin(GL_POINTS);
    glVertex3fv(aVertex[[color=#800080]0[/color]]);
    glVertex3fv(aVertex[[color=#800080]1[/color]]);
    glVertex3fv(aVertex[[color=#800080]2[/color]]);
    glVertex3fv(aVertex[[color=#800080]3[/color]]);
    glEnd();
    glColor3f([color=#800080]0.7[/color],[color=#800080]0.2[/color],[color=#800080]0.2[/color]);
    glMap1f(GL_MAP1_VERTEX_3,[color=#800080]0[/color],[color=#800080]1[/color],[color=#800080]3[/color],[color=#800080]4[/color],&aVertex[[color=#800080]0[/color]][[color=#800080]0[/color]]);
    glEnable(GL_MAP1_VERTEX_3);
    glBegin(GL_LINE_STRIP);
    [color=#0000FF]const[/color] [color=#0000FF]int[/color] NUM=[color=#800080]30[/color];
    [color=#0000FF]for[/color]([color=#0000FF]int[/color] i=[color=#800080]0[/color];i<=NUM;++i)
    {
        glEvalCoord1f([color=#800080]1.0f[/color]*i/NUM);
    }
    glEnd();
    glDisable(GL_MAP1_VERTEX_3);
    glMap1f(GL_MAP1_VERTEX_3,[color=#800080]0[/color],[color=#800080]1[/color],[color=#800080]3[/color],[color=#800080]4[/color],&bVertex[[color=#800080]0[/color]][[color=#800080]0[/color]]);
    glEnable(GL_MAP1_VERTEX_3);
    glBegin(GL_LINE_STRIP);
    [color=#0000FF]for[/color]([color=#0000FF]int[/color] i=[color=#800080]0[/color];i<=NUM;++i)
    {
        glEvalCoord1f([color=#800080]1.0f[/color]*i/NUM);
    }
    glEnd();
    glDisable(GL_MAP1_VERTEX_3);
    glutSwapBuffers();
}

[color=#0000FF]void[/color] reshape([color=#0000FF]int[/color] w,[color=#0000FF]int[/color] h)
{
    glViewport([color=#800080]0[/color],[color=#800080]0[/color],w,h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    gluPerspective([color=#800080]120[/color],[color=#800080]1[/color],[color=#800080]0.1[/color],[color=#800080]10[/color]);
    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    gluLookAt([color=#800080]0[/color],[color=#800080]0[/color],[color=#800080]1[/color],[color=#800080]0[/color],[color=#800080]0[/color],[color=#800080]0[/color],[color=#800080]0[/color],[color=#800080]1[/color],[color=#800080]0[/color]);
}

[color=#0000FF]void[/color] init()
{
    glClearColor([color=#800080]0[/color],[color=#800080]0[/color],[color=#800080]0[/color],[color=#800080]0[/color]);
    glShadeModel(GL_SMOOTH);
}

[color=#0000FF]int[/color] main([color=#0000FF]int[/color] argc,[color=#0000FF]char[/color]**argv)
{
    glutInit(&argc,argv);
    glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
    glutInitWindowSize([color=#800080]500[/color],[color=#800080]500[/color]);
    glutInitWindowPosition([color=#800080]0[/color],[color=#800080]0[/color]);
    glutCreateWindow(argv[[color=#800080]0[/color]]);
    init();
    glutDisplayFunc(display);
    glutReshapeFunc(reshape);
    glutMainLoop();
    [color=#0000FF]return[/color] [color=#800080]0[/color];
}[/code]

sophialiu 发表于 2011-5-12 12:03

您好,我叫Sophia,是IT行业的猎头,我现在给一家世界500强的企业招聘一位Opengl的专家,您有认识这方面的人才吗?

页: [1]

编程论坛