一个分形图形

2016-02-19 15:56 86 1 收藏

下面请跟着图老师小编一起来了解下一个分形图形,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

    和混沌密切相关的另一门学科是分形学。分形是由IBM公司的科学家曼德勃罗特在1975年提出的,作为计算机图形学的一个分支,用分形的方法生成的图像向人们展示了在简单的数学模型中蕴涵的内在美、对称性和复杂性。下面的第一幅图被称作曼德勃罗特集,其余几幅分别是对它的某个细节放大得到的。
      曼德勃罗特集的数学模型非常简单。假设有复数Z和μ,用下式迭代计算:Z=Z2+μ,由于μ的取值不同,经过若干次数迭代以后Z的幅值可能趋向无穷,也可能保持有界,曼德勃罗特集就是那些使Z保持有界的μ的集合,把μ在复平面上的分布作成图像,就像上面演示的那样具有极其复杂的结构。
  下面的程序用TC2.0编写, 假设屏幕的分辨率为640×480。
  #include graphics.h
  main(){
  int nThre=100; /* 其中nThre代表设置的门限值,当迭代后Z的幅值的平方大于nThre则认为趋于无穷*/
  int xCord,yCord,nColor,nTimes; /*xCord和yCord分别代表平面上的点的坐标位置,nColor代表作图时所使用的颜色,nTimes表示迭代的次数 */
  float reP,rePmin=-1.5,rePmax=0.75; /*reP表示由平面上一点所代表的μ值的实部,rePmax、rePmin分别代表μ值实部可取的最大值和最小值*/
  float imP,imPmin=-1.5,imPmax=1.5; /*imP、imPmax和imPmin分别代表μ的虚部及其容许的最大值和最小值*/
  float reZ,imZ,tmpReZ,deltImP,deltReP,absZ; 
  /*reZ和imZ分别代表Z值的实部和虚部,deltImP、deltReP表示每一个象素的代表的实部和虚部值的大小,absZ代表Z值的幅值 */ 
  int GraphDriver=DETECT,GraphMode; /*初始化图形显示*/
  initgraph(&GraphDriver,&GraphMode,“ ");
  deltReP=(rePmax-rePmin)/640; /*计算屏幕上一个像素表*/
  deltImP=(imPmax-imPmin)/480; /*和虚部值的大小示的 */
  for(xCord=1;xCord641;xCord++)
  for (yCord=1;yCord481;yCord++){
  reP=rePmin+deltReP*xCord; /*计算屏幕上一点所*/
  imP=imPmin+deltImP*yCord;/*代表的μ值大小*/
  reZ=0; imZ=0;
  for(nTimes=0;nTimes160;nTimes++){
  tmpReZ=reZ*reZ-imZ*imZ+reP; /*计算迭代后的Z*/
  imZ=2*reZ*imZ+imP;/*值及其幅值大小*/
  reZ=tmpReZ;absZ=reZ*reZ+imZ*imZ;
  if (absZnThre){nColor=nTimes/10;break;}
  /*假如幅值的平方大于门限值终止迭代*/
  nColor=0;}
  putpixel(xCord,yCord,nColor); }/*用指定的颜色作点*/
  getch();
  }
      上面的程序中,可以通过改变imPmin、imPmax以及rePmin与rePmax的值来对图像的局部细节进行放大,从而可以观察到更加精美复杂的图像,领悟分形图像的神韵。
      曼德勃罗特集是人们发现的最早的分形图形之一,也是人们研究最多的分形图形之一,今年的菲尔兹奖(数学界的最高奖)得主麦克马兰就是因为在曼德勃罗特集研究中的成绩而获此殊荣的。这些年关于分形的研究已经渗透到科学领域的各个学科,在计算机领域利用分形的方法来对自然景物进行逼真的模拟是一个很具挑战性的研究方向。      
  

来源:http://www.tulaoshi.com/n/20160219/1610736.html

延伸阅读
标签: 办公软件
如果我问你用PowerPoint作过图吗?你一定会说有。用PowerPoint可以画长方形,正方体,三角形,可爱的心形(如图1),为我们的幻灯片增色不少。可是这个图库自带的心形看着是不是有点别扭,想不想自己画一个漂亮的心形呢(如图2)?。它的制作其实很简单,下面我们来看看它的制作过程。 图1 图2 1. 绘制一个椭圆。在绘图工具...
标签: PS PS教程
我们常常会在网上看见很多由曲线排列成的各种特效图案,其实我们完全可以用Photoshop的批处理工具Action来轻松完成。 如下图: [next]下面我们就开始这个简单的过程: 1.新建一个photoshop文档,尽量大一些,这里用的是1600*1200。 2.按f7新增一层,命名为分形。 3.选择画笔工具,并将画笔的直径设为1像素。 4.选择钢笔工具,...
我们用手工来编织竹条可能不会吃力,不过用图像后表达会复杂很多。竹条的斜度不同,制作的难度也就不同,有斜度的就不好定义图案,需要自己慢慢打造。 最终效果 1、新建一个800 * 600像素的文档,选择渐变工具,颜色设置如图1,拉出图2所示的径向渐变作为背景。 图1 图2 2、新建一个图层,用钢笔勾出心形的轮廓,转...
标签: 平面设计
心形制作并不复杂,重点是把心形的体积感及高光刻画出来。制作之前最好找一些心形的素材参考一下,了解清楚高光及暗部构成,这样制作的效果就会逼真很多。 最终效果   1、新建一个900 * 650像素,分辨率为72的画布,背景填充淡紫色:#ECACCE,如下图。   <图1> 2、新建一个组,用钢笔勾...
做一个不一样的爱心吧,情人节可以用哦~情意绵绵。 新建一个图层,填充你喜欢的颜色(不必和我的一样) 建立一个矢量蒙版,然后用钢笔工具画出自己喜欢的心形或者其他什么形 画好后添加图层蒙版,拉一个黑白的径向渐变(渐变多少看自己) 然后点击画笔,调整画笔预设中的数值(数值不是固定的) 调好后,降低画笔的不透明度和流...

经验教程

656

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部