Martin图形墙纸生成器的设计与实现.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Martin图形墙纸生成器的设计与实现

Martin图形墙纸生成器的设计与实现 一 背景 Windows桌面上有一幅漂亮的墙纸是一件赏心悦目的事,这可以去拷贝一份自己感兴趣的图片做为墙纸,这些图片也许是通过摄影或扫描得到,不过这次用的是数学公式通过迭代去运算产生一些非常漂亮的图片,下面就是我这次用matlab来生成Martin图形的整个过程的设计与这次设计过程中的问题。 英国科学家Barry Martin曾经提出如下一对迭代公式, 采用这组公式通过迭代运算绘制出的计算机图形称为Martin图形,,不同的控制参数值将得到不同的图形,参数完全决定了最终图形的形态,这样的图形是无穷无尽的。图2是不同参数生成的图形(总共迭代了50万次),有趣的是这些图形酷似植物的内部结构。 图2 不同参数时的Martin图形 Martin图形表明:自然界的构造可能是一些简单规则的反复运用。正如Barry Martin所说的:“……非常清楚,这种新奇的图案向我们揭示出,构造复杂生命组织的结构的规律可能是简单的、可笑的……”[2]。 二 Martin图形墙纸生成具体原理与实现过程 图形墙纸的生成的一个核心的原理是先由Martin公式计算出所要描绘的坐标,再对该坐标进行绘点,加色,如此经过50万次的迭代运算,从而生成图像。 程序的开始要先生成一幅空白的图片,我用到的是ones函数,能生成一幅空白的白色图片,再对各个起始变量赋初值,然后要编写迭代循环将mardin公式写入循环里 下面列出的的就是Mardin公式: (1) 其中: (2) 是变量,,是给定的参数。 具体实现过程用流程图表示就是: 实际MATLAB编写中xn、yn分别用x0 y0表示 根据要求首先要编写一个函数调用: function [I]=Martin(h,l,a,b,c,r1,g1,b1,r2,g2,b2) I=ones(h,l,3); I(:,:,1)=r1; I(:,:,2)=g1; I(:,:,3)=b1; 接下来在填充色彩之前,有一个重要的一步就是找出图像的大小和位置,在程序中只要得出图像的边界坐标就可以了,需要一次迭代: y0=0; x0=0; for n=1:600000 x1=y0-sign(x0)*sqrt(abs(t*x0-c)); y1=a-x0; x0=x1;y0=y1; max=0; mix=0; if maxx1 max=x1; end if mixx1 mix=x1; end may=0; miy=0; if mayy may=y; end if miyy miy=y; end end 再一次迭代对图像一点一点进行添色: y0=0; x0=0; for n=1:500000 x1=y0-sign(x0)*sqrt(abs(b*x0-c)); y1=a-x0; x0=x1;y0=y1; 通过这次迭代就可以得到一组有规律的坐标x1,y1 x0,y0进入下一步循环,再将50万迭代获取的所有得到的x1,y1坐标点进行加色,就可以获得一幅有规律的图像。但获得图像不是都在图片的中心,显示的时候会出现不完整的图片,这就需要对图像进行压缩与平移,这就需要求出图像的中心坐标,还有图像大小,这就需要再这次迭代之前在进行一次迭代,根据x轴最大值max最小值mix,y轴最大值may最小值miy,这样就可以得出上面需要的中心坐标,还有图像大小,这样就可以继续上面的程序,得到这样一组程序进行平移润色: x2=max+mix;y2=may+miy; %计算图像中心坐标 l1=l/(max-mix);h1=h/(may-miy); x1=(x1-x2/2)*l1;y1=(y1-y2/2)*h1;%平移缩放 x1=floor(x1);y1=floor(y1); l2=floor(l/2);h2=floor(h/2); if x1-l2x1l2y1-h2y1h2 x1=x1+l2;y1=y1+h2; %平移到中心 I(y1,x1,1)=r2; %图像色彩设定 I(y1,x1,2)=g2; I(y1,x1,3)=b2; end end clc; clear all; close all;

文档评论(0)

ligennv1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档