资源简介
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
相关资源
- qt opengl 2d纹理到球面
- OpenGL实现机器人运动下蹲、起身、走
- OpenGL完整测试文件
- OpenGL绘制3D机器人
- 包含GlU32.Lib glut32.dll glut32.lib glut.dll
- gl/glext.h
- glutdlls37beta
- opengl所需的5个基本文件
- gltools/freeglut
- openGL中的glut库,32位和64位
- openGL期末大作业——行走的机器人
- OpenGL立方体带黑白格格纹理有光照可
- 计算机图形学OpenGL、codeblock、四连通
- opengl鼠标旋转,键盘缩放和平移
- opengl头文件glext.h
- 计算机图形学OpengL蔡士杰等译 随书代
- OPENGL室内三维效果
- YUV420在qt5下显示
- glut工具库
- 计算机图形学 交互实体模型
- OPENGL读取显示obj模型_VS2010
- 运用Opengl和C实现一个人体面部的三维
- opengl实现分形山脉
- opengl显示网格模型
- OpenGL扩展包实现接收鼠标滚轮输入功
- OpenGL + freeglut + glew + glm 環境配置
- openGl模拟太阳系旋转的小程序
- 支持滚轮事件的OpenGL的glut库
- OPENGL(GLAUX+GLUT)库文件等等
- 运动的自行车OpenGL
评论
共有 条评论