• 大小: 686KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-16
  • 语言: 其他
  • 标签: opengl  雪花  koch  

资源简介

opengl雪花kochopengl雪花koch

资源截图

代码片段和文件信息

#ifdef __APPLE__
#include 
#else
#include 
#endif
typedef GLfloat point2[2];


GLfloat v[3][2]={{-1.0 -0.58} {1.0 -0.58} {0.0 1.15}};

int n=5;

//绘制一条边上的koch线
void koch(point2 a point2 b point2 c int m)
{
      point2 a1b a2b;//ab边上的两个三等分点
      point2 a1c b1c;//ac, bc边上的第一个三等分点
      point2 amb;     //等边三角形的另一个顶点

      //a-b边上的2个三等分点
      a1b[0] = (2*a[0]+b[0])/3;
      a1b[1] = (2*a[1]+b[1])/3;
      a2b[0] = (a[0]+2*b[0])/3;
      a2b[1] = (a[1]+2*b[1])/3;

      //a-c边上的1个三等分点
      a1c[0] = (2*a[0]+c[0])/3;
      a1c[1] = (2*a[1]+c[1])/3;


      //b-c边上的1个三等分点
      b1c[0] = (2*b[0]+c[0])/3;
      b1c[1] = (2*b[1]+c[1])/3;

      //计算ab边上的第一个等边三角形的第三个顶点也可以通过a2b、b1c来求amb
      amb[0] = 2*a1b[0] - a1c[0];
      amb[1] = 2*a1b[1] - a1c[1];

      if(m > 1)
      {
         koch(a a1b  a1c m-1);
         koch(a1b amb a2b m-1);
         koch(amb a2b a1b m-1);
         koch(a2b b b1c m-1);
      }
      else
      {
         glVertex2fv(a);
         glVertex2fv(a1b);
         glVertex2fv(amb);
         glVertex2fv(a2b);
         glVertex2fv(b);
      }
}

//绘制雪花
void koch3(point2 a point2 b point2 c int m)
{
    koch(a b c m);
    koch(b c a m);
    koch(c a b m);
}

void display()
{
    glClear(GL_COLOR_BUFFER_BIT);       //清空窗口
    glBegin(GL_LINE_STRIP);
    koch3(v[0] v[1] v[2] n);
    glEnd();
    glFlush();
}

void myinit()
{
    glMatrixMode(GL_PROJECTION);       //矩阵模式,先变成单位阵再进行变换
    glLoadIdentity();
    gluOrtho2D(-2.0 2.0 -2.0 2.0);  //左右底顶的距离,平面图
    glMatrixMode(GL_MODELVIEW);
    glClearColor (1.0 1.0 1.0 1.0); //背景为不透明的白色
    glColor3f(0.00.00.0);            //绘制 颜色为黑色
}

int main(int argc char **argv)
{
    glutInit(&argc argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(500 500);
    glutCreateWindow(“koch_snow“);
    glutDisplayFunc(display);

    myinit();
    glutMainLoop();
    return 0;
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      19968  2011-12-24 21:53  雪花\koch_snow.exe

     文件    2292736  2011-07-29 19:37  雪花\QtCore4.dll

     文件       2185  2011-12-24 21:48  雪花\源码\main.cpp

     目录          0  2011-12-24 21:56  雪花\源码

     目录          0  2011-12-24 21:56  雪花

----------- ---------  ---------- -----  ----

              2314889                    5


评论

共有 条评论