资源简介
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
相关资源
- HPLC法测定地肤kochia scopariaL.Shard.中齐
- OpenGL参考手册
- Qt Creator opengl实现四元数鼠标控制轨迹
- OpenGL文档,api大全,可直接查询函数
- opengl轮廓字体源代码
- MFC读三维模型obj文件
- 利用OpenGL写毛笔字算法
- MFC中OpenGL面和体的绘制以及动画效果
- 基于OPENGL的光线跟踪源代码368758
- VC 实现三维旋转(源码)
- 自编用openGL实现3D分形树,分形山
- OpenGL球形贴图自旋程序
- OpenGL导入贴图的Texture类
- 计算机图形学(openGL)代码
- 用OpenGL开发的机械臂运动仿真程序(
- OpenGL-3D坦克模拟
- OPENGL实现世界上最小的3D游戏
- 下雪雪花flash
- VS2012OpenGL配置所需要的全部libdllh文件
- 基于OpenGL的仿蝗虫机器人三维动态仿
- 图形学 - OpenGL实现3种三维茶壶显示源
- opengl程序-会跳舞的骷髅
- opengl实现三维网格光顺Laplacian算法
- opengl——爆炸
- OpenGL三维地形建模
- opengl游戏编程徐明亮版(含源码)
- 用OPENGL画的一个简单的直升飞机
- opengl完美天空盒
- 3D绘图程序设计:使用Direct3D 10/9和Ope
- OpenGL绘制可运动自行车源程序.zip
评论
共有 条评论