博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分形之康托(Cantor)三分集
阅读量:5784 次
发布时间:2019-06-18

本文共 993 字,大约阅读时间需要 3 分钟。

      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[0] = vStart;    pVertices[1] = vStart + vSub*length;    pVertices[2] = vEnd - vSub*length;    pVertices[3] = vEnd;    for (Yuint i = 0; i < 4; i++)    {        pVertices[i].y += stepY;    }}

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

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

软件下载地址:

 

 

 

 

 

转载地址:http://quvyx.baihongyu.com/

你可能感兴趣的文章
Puppet 配置管理工具安装
查看>>
Bug多,也别乱来,别被Bug主导了开发
查看>>
sed 替换基础使用
查看>>
高性能的MySQL(5)创建高性能的索引一B-Tree索引
查看>>
oracle备份与恢复--rman
查看>>
图片变形的抗锯齿处理方法
查看>>
Effective C++ Item 32 确保你的 public 继承模子里出来 is-a 关联
查看>>
phpstorm安装laravel-ide-helper实现自动完成、代码提示和跟踪
查看>>
python udp编程实例
查看>>
TortoiseSVN中图标的含义
查看>>
Tasks and Back stack 详解
查看>>
关于EXPORT_SYMBOL的作用浅析
查看>>
成功的背后!(给所有IT人)
查看>>
在SpringMVC利用MockMvc进行单元测试
查看>>
Nagios监控生产环境redis群集服务战
查看>>
Angular - -ngKeydown/ngKeypress/ngKeyup 键盘事件和鼠标事件
查看>>
Android BlueDroid(一):BlueDroid概述
查看>>
Java利用httpasyncclient进行异步HTTP请求
查看>>
宿舍局域网的应用
查看>>
html代码究竟什么用途
查看>>