分形之谢尔宾斯基(Sierpinski)三角形

谢尔宾斯基三角形(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集。也有的资料将其称之为谢尔宾斯基坟垛.

其生成过程为:

  1. 取一个实心的三角形。(多数使用等边三角形)
  2. 沿三边中点的连线,将它分成四个小三角形。
  3. 去掉中间的那一个小三角形。
  4. 对其余三个小三角形重复1。

核心代码:

static void SierpinskiTriangle(const Vector3& v1, const Vector3& v2, const Vector3& v3, Vector3* pVertices)
{
    Vector3 v12 = (v1 + v2)*0.5f;
    Vector3 v13 = (v1 + v3)*0.5f;
    Vector3 v23 = (v2 + v3)*0.5f;

    pVertices[0] = v1;
    pVertices[1] = v12;
    pVertices[2] = v13;

    pVertices[3] = v2;
    pVertices[4] = v23;
    pVertices[5] = v12;

    pVertices[6] = v3;
    pVertices[7] = v13;
    pVertices[8] = v23;
}

软件下载地址:http://files.cnblogs.com/WhyEngine/Fractal.7z

时间: 2024-10-08 17:43:55

分形之谢尔宾斯基(Sierpinski)三角形的相关文章

分形之谢尔宾斯基(Sierpinski)地毯

前面讲了谢尔宾斯基三角形,和这一节的将把三角形变为正方形,即谢尔宾斯基地毯,它是由瓦茨瓦夫·谢尔宾斯基于1916年提出的一种分形,是自相似集的一种. 谢尔宾斯基地毯的构造与谢尔宾斯基三角形相似,区别仅在于谢尔宾斯基地毯是以正方形而非等边三角形为基础的.将一个实心正方形划分为的9个小正方形,去掉中间的小正方形,再对余下的小正方形重复这一操作便能得到谢尔宾斯基地毯.如下图:       核心代码: static void SierpinskiCarpet(const Vector3& v, Vect

分形之谢尔宾斯基(Sierpinski)四面体

前面讲了谢尔宾斯基三角形,这一节的将对二维三角形扩展到三维,变成四面体.即将一个正四面体不停地拆分,每个正四面体可以拆分成四个小号的正四面体.由二维转变到三维实现起来麻烦了许多.三维的谢尔宾斯基四面体看上去比谢尔宾斯基三角形更像坟冢. 核心代码: static void SierpinskiTetrahedron(const Vector3* pSrc, Vector3* pDest) { Vector3 v01 = (pSrc[0] + pSrc[1])*0.5f; Vector3 v02 =

混沌分形之谢尔宾斯基(Sierpinski)

本文以使用混沌方法生成若干种谢尔宾斯基相关的分形图形. (1)谢尔宾斯基三角形 给三角形的3个顶点,和一个当前点,然后以以下的方式进行迭代处理: a.随机选择三角形的某一个顶点,计算出它与当前点的中点位置: b.将计算出的中点做为当前点,再重新执行操作a 相关代码如下: class SierpinskiTriangle : public FractalEquation { public: SierpinskiTriangle() { m_StartX = 0.0f; m_StartY = 0.0

分形--谢尔宾斯基地毯

谢尔宾斯基地毯的构造与谢尔宾斯基三角形相似,区别仅在于谢尔宾斯基地毯是以正方形而非等边三角形为基础的.将一个实心正方形划分为的9个小正方形,去掉中间的小正方形,再对余下的小正方形重复这一操作便能得到谢尔宾斯基地毯. js实现思路和我之前写的分形--谢尔宾斯基三角形的类似. js效果: 贴关键代码: 1.画点 function point(x,y){ this.x = x; this.y = y; } 2.画线 function drawLine (ctx,point1,point2) { ctx

谢尔宾斯基三角形,“混沌游戏”实现 2014-10-22

请教了一下@李劲 学长用啥图形库,学长推荐了EasyX,我就试了试做这个,原物是从<混沌与分形——科学的新疆界>p24页看到的. 本来还想做的更动态一些,但是没搞清楚画出的线如何删掉,干脆就不划线了.用上下键可调速. 疑问: ①.如何有效地将程序暂停很短的时间?貌似Sleep函数只能最短暂停10ms左右.我用空循环模拟了暂停,但在VS的Release生成时就毫无效果,不知道是空循环的问题还是其他问题(我怀疑后者). ②.TCHAR如何用itoa等函数?(有wcscpy等TCHAR类型可使用的函

谢宾斯基三角形的几种生成方法

简介 谢宾斯基三角形(Sierpinski triangle)是一种分形,由波兰数学家谢宾斯基在1915年提出.它是一种自相似集. 几种生成方法 方法一:去掉中心 取一个实心的三角形(多数用等边三角形) 连接三边中点,将它们分成4个小三角形 将正中间的三角形挖空 对其余三个小三角形重复操作1 取一个正方形或其它图形开始,用类似的方法,形状也和谢宾斯基三角形相似,例如: 取一个实心正方形 将它分成3个“品”字形的小正方形 将其余部分“挖空” 重复步骤1 方法二:Chaos Game 任取平面上三点

苹果iOS手机暗藏间谍软件的揭秘者:扎徳尔斯基

大家知道,苹果iOS手机的短消息服务器(SMS)是用硬件加密的,看起来很安全.但是,Jonathan Zdziarski发现苹果公司有意地放进去一个"文件转发服务器"(file-relay),可以避开SMS的硬件保护机制,留给自己使用. 苹果公司并不否认这个事实,但是,强调这种避开硬件保护的系统设计是为了系统"诊断"使用.可是,实际情况不是这样的. 扎德尔发现,这个所谓的"诊断程序"可以采用无线方式激活,也就是说,在用户完全不知情的情况下,比如,

驳斥苹果“诊断后门论”,声援扎德尔斯基

近日,围绕苹果iOS手机存在系统后门事件,国际上对立两派激战不断升级,从扎德尔斯基个人网站上可见一斑. 反观我们国内,动静不大,深度不够.此刻,我们必须明确表态,批判苹果的"诊断后门论",声援扎德尔斯基!苹果iOS手机存在"后门",事关用户的个人信息安全,也关乎国家的信息安全.对此,我们必须明确表明立场! 我们声援扎德尔斯基的最好办法就是把苹果iOS手机存在后门的事实真相彻底搞清处,把苹果钉在耻辱柱上.中国人现在已经不是东亚病夫可以任人宰割. 说明:我正在收集相关材

《戴尔&#183;卡耐基传记》--[美]戴尔&#183;卡耐基

<戴尔·卡耐基传记>,[美]戴尔·卡耐基 下面是我的书摘: * 而这时卡耐基在写一本书.这本书名字叫做<林肯外传>.他在构思这本书的时候一方面是处于对林肯的崇拜,一方面是因为厌恶家中的一切.他发觉,林肯的家庭生活和他的家庭生活竟有如此的相似之处,虽然写的是林肯,但他觉得这完全是在写他的自传. * 1944年的一个春天的黄昏,在纽约河畔的一片小树林边,卡耐基和桃乐丝并肩坐在树下.他们的心情都非常快乐,在一起享受着爱的甜蜜. 圣经上说,上帝把人分成了两半,一半是男人,一半是女人,让这两