zoukankan      html  css  js  c++  java
  • 圆的绘制 分形图案

     

    1.圆的绘制

    #include <windows.h>

    #include <GL/gl.h>

    #include <GL/glu.h>

    #include <GL/glaux.h>

    #include <math.h>

    #define PI 3.1415926535897

    void myinit (void)

    {

        /*  将背景清为白色  */

        glClearColor (1.0, 1.0, 1.0, 0.0);

        glShadeModel (GL_FLAT);

    }

    void CALLBACK display(void)

    {

        int i, num_points=100;

        glClear (GL_COLOR_BUFFER_BIT);

        /*  将所有的线画为黑色  */

        glColor3f (0.0, 0.0, 0.0);

       

        glBegin(GL_LINE_LOOP);

        for ( i = 0; i < 100; i++)

        {

           double t=2*PI*i/num_points;

           glVertex2d(200+100*cos(t),200+100*sin(t));

        }

        glEnd();

        glFlush();

    int main(int argc, char** argv)

    {

        auxInitDisplayMode (AUX_SINGLE | AUX_RGBA);

        auxInitPosition (0, 0, 400, 400);

        auxInitWindow ("Circle");

        myinit ();

        auxMainLoop(display);

        return 0;

    }

    1. 分形图案

    #include<windows.h>

    #include<GL/gl.h>

    #include<GL/glu.h>

    #include<GL/glaux.h>

    #include<math.h>

    #define PI 3.14159

    #define MaxIter 8000

    void CALLBACK myReshape(GLint w, GLint h)

    {

        glViewport(0,0,w,h);

        glMatrixMode(GL_PROJECTION);

        glLoadIdentity();

        gluOrtho2D(-8,8,-3,13);

       

        glMatrixMode(GL_MODELVIEW);

        glLoadIdentity();

       

    }

    void  CALLBACK display(void)

    {

        GLfloat x=0,y=0;

        glClear(GL_COLOR_BUFFER_BIT);

        glColor3f(0.4f,0.8f,0.4f);

        glBegin(GL_POINTS);

        for (int i=1;i<=MaxIter;i++)

        {

           int n=(int) 100*rand()/(RAND_MAX+1);

           GLfloat x1,y1;

           if(n<1)

           {

               x1=0;

               y1=0.16*y;

           }

           else if(n<8)

           {

               x1=0.2*x-0.26*y;

               y1=0.23*x+0.22*y+1.6;

           }

           else if(n<16)

           {

               x1=-0.15*x+0.28*y;

               y1=0.26*x+0.24*y+0.44;

           }

           else

           {

               x1=0.85*x+0.04*y;

               y1=-0.04*x+0.85*y+1.6;

           }

           //按概率随机选取一个仿射变换      

           glVertex2f(x1,y1);

            x=x1;y=y1;

            glFlush();

        }

        glEnd();

        glFlush();

    }

    int main(int argc, char* argv[])

    {  

        auxInitDisplayMode (AUX_SINGLE | AUX_RGBA);

        auxInitPosition (0,0, 300, 300);

        auxInitWindow ("分形图案");

        glClearColor(0.0,0.0,0.0,0.0);

        auxReshapeFunc(myReshape);

        auxMainLoop(display);

    }

  • 相关阅读:
    辞职信(转贴)
    去掉控件上显示聚焦框
    静态构造函数
    用Excel 公式求 金额的差额
    2020/2/6学习总结
    2020/2/3学习总结
    2020/2/7学习总结
    2020/1/31学习总结
    2020/2/5学习总结
    2020/2/4学习总结
  • 原文地址:https://www.cnblogs.com/wander-clouds/p/11007787.html
Copyright © 2011-2022 走看看