1883年,德国数学家康托(G.Cantor)提出了如今广为人知的三分康托集,或称康托尔集。三分康托集是很容易构造的,然而,它却显示出许多最典型的分形特征。它是从单位区间出发,再由这个区间不断地去掉部分子区间的过程。

三分康托集的构造过程是:

第一步,把闭区间[0,1]平均分为三段,去掉中间的 1/3 部分段,则只剩下两个闭区间[0,1/3]和[2/3,1]。

第二步,再将剩下的两个闭区间各自平均分为三段,同样去掉中间的区间段,这时剩下四段闭区间:[0,1/9],[2/9,1/3],[2/3,7/9]和[8/9,1]。

第三步,重复删除每个小区间中间的 1/3 段。如此不断的分割下去, 最后剩下的各个小区间段就构成了三分康托集。

其实三分Cantor集的构造本身就具有严格的自相似的结构,并且具有无穷小的细节,我们可以说三分Cantor集就是分形集。当时,Cantor是为了证明级数中的一些定理引进的,由于它的一些奇异的性质,被当时看作集合中的另类,从而忽视了Cantor集的重要性。如今Cantor集经常在混沌和分形的研究中遇到。既然它是分形,那么它的维数将可以采用前面讲述的方法进行计算。因为它有严格的自相似结构,如果按比例缩小1/3,则它相当于两个原来相似整体。

Cantor集是一种最简单的分形方式,无非是不停地将一条线段变成两条小点的线段,核心代码如下:

static void FractalCanto(const Vector3& vStart, const Vector3& vEnd, Yreal length, Yreal stepY, Vector3* pVertices)
{
Vector3 vSub = vEnd - vStart; pVertices[] = vStart;
pVertices[] = vStart + vSub*length;
pVertices[] = vEnd - vSub*length;
pVertices[] = vEnd; for (Yuint i = ; i < ; i++)
{
pVertices[i].y += stepY;
}
}

程序中可以任意设置实线的分裂比例,而不是严格意义上的三等分:

可以以3D的视角观察图形:

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

分形之康托(Cantor)三分集的更多相关文章

  1. cantor三分集

    值得一提的是,第一次听说cantor三分集是在数字电路课上,然而数电是我最不喜欢的课程之一...... 分形大都具有自相似.自仿射性质,所以cantor三分集用递归再合适不过了,本来不想用matlab ...

  2. [实变函数]2.5 Cantor 三分集

    1 Cantor 三分集的构造:                $$\bex P=\cap_{n=1}^\infty F_n.                   \eex$$ 2 Cantor 三分 ...

  3. 18个分形图形的GIF动画演示

    这里提供18个几何线段分形的GIF动画图像.图形颜色是白色,背景色为黑色,使用最基本的黑与白以表现分形图形. (1)科赫(Koch)雪花   (2)列维(levy)曲线   (3)龙形曲线(Drago ...

  4. Altium 分形天线设计

    Altium 分形天线设计 程序运行界面 Cantor三分集 Koch雪花 Sierpinski垫片 源代码: Iter_Num = 4     'diedai PI = 3.1415926 Call ...

  5. 关于 Cantor 集不可数的新观点

    第一步操作:将区间 $[0,1]$ 中去掉开区间 $(\frac{1}{3},\frac{2}{3})$ 后,就形成了两个不交闭区间.于是这两个不交闭区间中至少有两个元素,正好是集合 $\{1\}$ ...

  6. Python 分形算法__代码里开出来的艺术之花

    1. 前言 分形几何是几何数学中的一个分支,也称大自然几何学,由著名数学家本华曼德勃罗( 法语:BenoitB.Mandelbrot)在 1975 年构思和发展出来的一种新的几何学. 分形几何是对大自 ...

  7. hihoCoder #1312 : 搜索三·启发式搜索(A*, 康托展开)

    原题网址:http://hihocoder.com/problemset/problem/1312 时间限制:10000ms 单点时限:1000ms 内存限制:256MB   描述 在小Ho的手机上有 ...

  8. 康托展开+逆展开(Cantor expension)详解+优化

    康托展开 引入 康托展开(Cantor expansion)用于将排列转换为字典序的索引(逆展开则相反) 百度百科 维基百科 方法 假设我们要求排列 5 2 4 1 3 的字典序索引 逐位处理: 第一 ...

  9. 康托(Cantor)展开

    直接进入正题. 康托展开 Description 现在有"ABCDEFGHIJ”10个字符,将其所有的排列中按字典序排列,给出任意一种排列,说出这个排列在所有的排列中是第几小的? Input ...

随机推荐

  1. Luogu 2812 校园网络 - Tarjan

    Description 给出一个有向图, 要求出至少从哪几个点出发, 能不漏地经过所有节点. 再求出至少加几条边, 才能使图变成一个强联通分量 Solution 求出所有强联通分量, 形成一个有向无环 ...

  2. xgboost安装

    安装连接:https://www.zhihu.com/question/46377605 软件连接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#xgboos ...

  3. Windows服务器支持json文件

    Windows服务器默认是不支持json文件的直接读取的.如在浏览器中输入地址访问或是通过代码访问,都是无法获取到数据的.需要在服务器端进行配置,让服务器支持解析.json扩展名的json文件. 方法 ...

  4. autohotkey快捷键

    ;已经基本修复了输入带shift的时候跟输入法中英文切换之间的冲突 SetStoreCapslockMode, off SetKeyDelay, ^CapsLock:: #UseHook ;用这个和下 ...

  5. idea15 生成mybatis代码

    pom.xml <build> <finalName>mybatis_generator</finalName> <plugins> <plugi ...

  6. 之前的一些Oracle的经验总结

    1. 安装: 1) 关于字符集的选择,现在还不很了解,修改是需要进入一个模式下才可以修改,当然新建一个数据库实例的时候可以重新设定: UTF8是相对比较大的一个字符集, 可以简单实用这个就能保存很多的 ...

  7. 进入快速通道的委托(深入理解c#)

    1.方法组:所有的名称相同的重载方法合在一起就成为一个方法组. 2.协变性和逆变性: 协变性指的是——泛型类型参数可以从一个派生类隐式转化为基类. 逆变性指的是——泛型类型参数可以从一个基类隐式转化为 ...

  8. 27、Label 自适应文本 xib

    第一步: 第二步: 第三步: 第四步:

  9. bootstrap 后台模板

    http://wangye0119-html1.demo.smallseashell.com/index.html

  10. 先加载js 后载控件

    可以使用如下 $(document).on('click','.classname',function(){});