wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了圆的绘制 分形图案大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

  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) {     /*  将背景清为白色  */     glClearColo

 

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,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,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,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,300,300);

    auxInitWindow ("分形图案");

    glClearColor(0.0,0.0);

    auxReshapeFunc(myReshape);

    auxMainLoop(display);

}

大佬总结

以上是大佬教程为你收集整理的圆的绘制 分形图案全部内容,希望文章能够帮你解决圆的绘制 分形图案所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: