資源簡介
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
評論
共有 條評論