




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 mix=x1; end may=0; miy=0; if mayy miy=y; endend再一次迭代对图像一点一点进行添色: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-l2&x1-h2&y1h2 x1=x1+l2;y1=y1+h2; %平移到中心 I(y1,x1,1)=r2; %图像色彩设定 I(y1,x1,2)=g2; I(y1,x1,3)=b2; endend这里的h就是图片的高,l是宽,I表示图片,要注意的是I中的坐标都要是整型,这里都是用floor进行转换,r2,g2,b2是可以从外部输入的一组颜色参数变量。这里求最大值最小值的源代码没有列出,可以参阅提交的电子文档。具体的过程就是通过相同次数的迭代循环比较每一组数的大小,就可以轻松的得到最值。函数编好后就需要一个脚本文件的调用,为了图像能随心所欲的调整,这次采用数据完全从外面输入的形式,具体的源代码是这样:clc;clear all;close all;disp(请输入你想生成的图片的大小的参数:); %外部输入参数h=input(高度(像素值):);l=input(宽度(像素值):);disp(请输入图形形状参数(不同的参数配合会出现各种不同的图像));a=input(a=);b=input(b=);c=input(c=);disp(背景颜色亮度调节:);r1=input(红色(0255):);g1=input(绿色(0255):);b1=input(蓝色(0255):);disp(图像颜色亮度调节:);r2=input(红色(0255):);g2=input(绿色(0255):);b2=input(蓝色(0255):);I=Martin(h,l,a,b,c,r1,g1,b1,r2,g2,b2); %调用函数I=uint8(I); %转换数据类型imshow(I) %显示图片imwrite(I,桌面.jpg,jpg) %生成图片三 实验成果基于上述原理方法,可以使用程序绘制各种各样的Martin图形,表1给出了几组参考系数值,这些系数均可以绘制漂亮的图形:表1 几组参考系数值序号系数值1a = 7.5 b = 1.37 c = 2.82a = -536 b = -102 c = 673a = 3 b = 8.1 c = 04a = 5.5 b = 0.9 c = 1.955a = 1 b = 2 c = 0图3给出了一个这次使用程序设制Martin图形作为Windows墙纸两个例子,图形进行一些颜色的搭配和缩放,很酷吧J使用的参数为a =1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目部工作总结汇报
- 2026届江苏省南京市名校九上化学期中学业水平测试模拟试题含解析
- 2026届内蒙古包头市化学九年级第一学期期末经典试题含解析
- 湖南省邵阳市邵东市第四中学2025-2026学年高三上学期第一次月考英语试题
- 广东省潮州市潮安区2024-2025学年八年级下学期期末物理试题(含答案)
- 2026届江苏省扬州市仪征市新集初级中学英语九上期末经典模拟试题含解析
- 离婚协议补充协议范本:子女监护权变更补充条款
- 高新技术产业园区土地出让与投资合作协议
- 美妆行业业务员聘用协议及产品推广服务合同
- 双方协议离婚子女抚养费用及监护权分配详细合同范本
- 汽车零部件预算管理制度
- 汽车金融贷后管理方案
- 2025年中国卡通公仔相机行业市场调查与发展研究报告
- 老公赌博夫妻协议书
- 小学科学苏教版五年级上册全册教案(2023秋新课标版)
- 项目经理转正述职报告
- 废水管理制度
- 汽车销售退货及换车流程
- 林业行政执法培训课件
- 代办离职委托书模板文档
- 洗浴中心转让合同
评论
0/150
提交评论