zoukankan      html  css  js  c++  java
  • 动态螺旋线

    代码如下:

    #include <windows.h>
    //#include <GLUT/glut.h>
    #include <GL/glut.h>
    #include <math.h>
    #include <iostream>
    using namespace std;
    
    #define GL_PI 3.1415f
    
    
    void RenderScene()
    {
        //glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
    
        static GLdouble dRadius = 10;
        static GLdouble dAngle = 0.0;
    
        //glClearColor(0.0f,0.0f,1.0f,0.0f);
    
        if(dAngle==0.0)
            glClear(GL_COLOR_BUFFER_BIT);
        glPointSize(10.0);
        glBegin(GL_POINTS);
            glVertex2d(dRadius*cos(dAngle),dRadius*sin(dAngle));
        glEnd();
    
        dRadius *= 1.01;
        dAngle += 0.1;
    
        if(dAngle > GL_PI)
        {
            dRadius = 10;
            dAngle = 0.0;
        }
    
        //glutSwapBuffers();
        glFlush();
    }
    
    void ChangeSize(GLsizei w,GLsizei h)
    {
        if(h==0)
            h = 1;
        //glutPostRedisplay();
        GLfloat aspectRatio = (GLfloat)w/(GLfloat)h;
    
        glViewport(0,0,w,h);
    
        glMatrixMode(GL_PROJECTION);
        glLoadIdentity();
    
        if(w<=h)
            glOrtho(-100,100,-100/aspectRatio,100/aspectRatio,100.0,-100.0);
        else
            glOrtho(-100*aspectRatio,100*aspectRatio,-100,100,100.0,-100.0);
    
        glMatrixMode(GL_MODELVIEW);
        glLoadIdentity();
    
    }
    
    void SetupRC()
    {
        glClearColor(0.0f,0.0f,1.0f,1.0f);
        glColor3f(1.0f,0.0f,0.0f);
    }
    void TimerFunction(int value)
    {
        glutPostRedisplay();
        glutTimerFunc(33,TimerFunction,1);
    }
    int main(int argc, char *argv[])
    {
       glutInit(&argc,argv);
       glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);
       glutInitWindowSize(800,600);
       glutCreateWindow("Simple");
    
       glutDisplayFunc(RenderScene);
       glutReshapeFunc(ChangeSize);
       glutTimerFunc(33,TimerFunction,1);
    
       SetupRC();
       glutMainLoop();
       return 0;
    }
    态度决定高度,细节决定成败,
  • 相关阅读:
    Linux_9/ RAID & LVM
    Linux_8/ fdisk, xfs_quota, edquota
    Linux_7/(chattr, lsattr), (setfacl, getfacl),su
    Linux_6/ Vim, Shell(下),(at, crond), (SUID, SGID, SBIT)
    Linux_5/ Vim, Shell(上)
    Linux_4/ |, (>, 2>, &>, >>, 2>>)
    Map集合的遍历
    List集合三种遍历方法
    MySQL安装
    排序法
  • 原文地址:https://www.cnblogs.com/lxk2010012997/p/4199357.html
Copyright © 2011-2022 走看看