自己几何也太差劲了,时间都花在计算坐标位置上了
图片附件: Sierpinski.JPG (2007-3-29 00:56, 39.68 K)
附件: D3DStudy.exe (2007-3-29 00:56, 64 K)
主要算法,就是个递归:
/**//***************************************
*三角形绘制
*vertex[3]
***************************************/
inlinevoidDrawTriangle(CustomVertexvertex[])
...{
//拷贝到顶点缓存
memcpy(pVertices,vertex,3*sizeof(CustomVertex));
g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLELIST,0,1);
}
/**//****************************************
*Sierpinski镂垫绘制
*deepth:递归深度
****************************************/
voidDrawSierpinski(CustomVertexvertex[],intdeepth)
...{
if(deepth==0)
...{
DrawTriangle(vertex);
return;
}else
...{
//计算中点
CustomVertexmidVertex[]=
...{
...{(vertex[1].x+vertex[2].x)/2,(vertex[1].y+vertex[2].y)/2,(vertex[1].z+vertex[2].z)/2,vertex[0].color},
...{(vertex[0].x+vertex[2].x)/2,(vertex[0].y+vertex[2].y)/2,(vertex[0].z+vertex[2].z)/2,vertex[1].color},
...{(vertex[1].x+vertex[0].x)/2,(vertex[1].y+vertex[0].y)/2,(vertex[1].z+vertex[0].z)/2,vertex[2].color}
};
CustomVertextempVertex[3];
//分三部分进行递归绘制
tempVertex[0]=vertex[0];
tempVertex[1]=midVertex[2];
tempVertex[2]=midVertex[1];
DrawSierpinski(tempVertex,deepth-1);
tempVertex[0]=midVertex[2];
tempVertex[1]=vertex[1];
tempVertex[2]=midVertex[0];
DrawSierpinski(tempVertex,deepth-1);
tempVertex[0]=midVertex[1];
tempVertex[1]=midVertex[0];
tempVertex[2]=vertex[2];
DrawSierpinski(tempVertex,deepth-1);
}
}
分享到:
相关推荐
sierpinski镂垫是典型的分形理论基础图形,本程序在MFC环境下编写,用了OpengGL的API,由于可以进行旋转和移动,因此可以看到完整的三维效果。
用OpenGL实现的谢尔宾斯基镂垫算法,运行环境在mac os下,不同的运行环境包含的函数头名字需要进行更改
c++动画,旋转和移动的三维sierpinski镂垫
用OpenGL基于着色器编程,实现对一个四面体的递归等分(可以说是Sierpinski镂垫的三维版)
用5000个点,实现Sierpinski3D镂垫,其中点的颜色根据点的坐标在顶点着色器中给定
Sierpinski金字塔-分形-计算机图形学课程程序,使用了画家算法进行消隐,可控制递归深度和旋转速度。
应用实空间重整化群变换的方法,在Sierpinski镂垫上研究了外场作用下具有二体和三体自旋作用的Ising模型,求出了临界点和临界指数.与只有二体自旋作用的情况相比较,考虑三体自旋作用后,系统仍然只存在零温相变.
Scaling_Sierpinski Name of Quantlet : Scaling_Sierpinski Published in : Metis Description : ' Sierpinski plots the Sierpinski triangle ' Keywords : scaling, topology, self-similar, mandelbrot, ...
应用c++ MFC实现Sierpinski垫片算法,配套清华大学出版社的《计算机图形学基础教程》。
Sierpinski垫片的matlab源程序,使用递归算法
利用IFS方法生成的Sierpinski垫片
应用c++ MFC实现Sierpinski垫片IFS图形算法,配套清华大学出版社的《计算机图形学基础教程》。
JavaScript图形实例:随机SierPinski三角形.docx
谢尔宾斯基三角形,别的写的,和大家分享下哈!
元胞自动机的大部分程序,包括元胞自动机生成sierpinski直角垫片 ,在六边形的元胞自动机上模拟单粒子运动,算法是基于FHP规则.以及元胞自动机模拟地球卫星的云图 ,元胞以固定的概率向相邻的4个元胞扩散 zz问题,...
Sierpinski_Triangle WebGL Sierpinski三角形
提出一种新型分形结构加载的Sierpinski垫片天线。该天线采用新型加载技术并充分利用了此新型结构的空间自填充能力。结果表明,此新型分形结构加载的Sierpinski垫片天线比Koch分形加载更能缩减天线的尺寸,并且能降低...
谢尔宾斯基javascript文件实现了一种简单的算法来生成Sierpinski三角形。 在浏览器中打开html文件,然后应显示三角形。 该算法基于以下事实:生成的三角形是一个以三角形顶点为中心的3个收缩映射族(Lipschitz常数...
其中包含了两种Sierpinski地毯的画法,递归法和IFS法
内含Cantor三分集源代码。 <2_02>:内含Koch曲线源代码。<2_03>:内含Koch雪花源代码...:内含Sierpinski垫片源代码。<2_06>:内含Sierpinski垫片源代码。<2_07>:内含Sierpinski地毯源代码。