Matalab IFS分形算法

IFS 算法代码

function IFS_draw(M,p)
N=300000;
for k=1:length(p);
    eval([‘a‘,num2str(k),‘=reshape(M(‘,num2str(k),‘,:),2,3);‘]);
end
xy=zeros(2,N);
pp=meshgrid(p);
pp=tril(pp);
pp=sum(pp,2);
for k=1:N-1;
    a=rand-pp;
d=find(a<=0);
    xy(:,k+1)=eval([‘a‘,num2str(d(1)),‘(:,1:2)‘])*xy(:,k)+eval([‘a‘,num2str(d(1)),‘(:,3)‘]);
end;
P=complex(xy(1,:),xy(2,:));
plot(P,‘y.‘, ‘MarkerFaceColor‘,‘y‘,‘markersize‘,2);
axis equal;
axis image;
axis off;
set(gcf,‘Color‘,‘k‘);

M 数据

0.8 0 0 -0.8 0 0
0.4 -0.2 0.2 0.4 1.1 0

p 数据

0.5 0.5

展示代码

% M, p 数据已经存为文件 IFS_Mp.mat
load(‘IFS_Mp.mat‘);
IFS_draw(M,p);

时间: 2024-12-30 05:21:52

Matalab IFS分形算法的相关文章

分形算法小记

模式替换的分形,通常都可以使用L系统表示,想那些雪花曲线之类的都是模式替换分形的.L系统是指一个字符序列,这个字符序列内的某些子序列可以按照规则替换为特定的序列(通常更长),序列中的不同字符有不同的含义.比如改变绘制方向和绘制一条线段等等. 通过L系统可以绘制出非常接近真实的植物来,当然也可以绘制出其他的曲线. package main import ( "github.com/hydra13142/paint" "image" "image/color&

正与邪---25幅由算法生成的五角星图像

      五角星,又称五芒星,是指一种有五只尖角,并以五条直线画成的星星图形.做为中国人,一定对五角星有着特殊的情感.我还记得上小学的时候,曾在课桌上刻过几个五角星以表达我的爱国之情.前几天我还写过一个算法生成五星红旗.五角星是边数最少多角形,最简单画它的方法是先画一个正五边形,把各角和其对角用直线相连,并擦去原来的五边形.也可以延长原五边形的各边直到它们相交,从而得到一个大的五角星.其最大的特点是符合黄金分割0.618. 五角星被很多国家的军队作为军官(尤其是高级军官)的军衔标志使用. 一直

分形几何算法和实现(C语言)

初识分形 1.分形的含义: 英文单词Fractal,它是由美籍法国数学家曼德勃罗(Benoit Mandelbrot)创造出来的.其含义是不规则的.破碎的.分数的.曼德勃罗是想用此词来描述自然界中传统欧几里得几何学所不能描述的一大类复杂无规的几何对象. 2.分形的几何特征: 自相似性:自相似,便是局部与整体的相似. 自仿射性:自仿射性是自相似性的一种拓展.如果,将自相似性看成是局部到整体在各个方向上的等比例变换的结果的话,那么,自仿射性就是局部到整体在不同方向上的不等比例变换的结果.前者称为自相

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

这里提供18个几何线段分形的GIF动画图像.图形颜色是白色,背景色为黑色,使用最基本的黑与白以表现分形图形.对分形几何有兴趣的人可以看下.我在写程序时基本是参考<分形算法与程序设计_Visual C++实现>这本书的光盘代码.几乎每一种分形算法我都写了单独的文章介绍,可以通过链接查看. (1)科赫(Koch)雪花 (2)列维(levy)曲线 (3)龙形曲线(Dragon Curve) (4)C折线 (5)谢尔宾斯基(Sierpinski)三角形 (6)谢尔宾斯基(Sierpinski)地毯 (

分形之可编辑折线

将一条线段变成若干条首尾相连的线段,然后对每一条新生成的线段重复此操作,最终会生成一幅很漂亮的图形.这就是折线的分形图形.之前我发过一篇文章:分形的程序实现,里面实现了近20种分形图形的生成算法.在这些分形算法中,大部分是针对折线的,即将一条线段不停得拆分出多条线段,如:列维(levy)曲线, 海岸线, 科赫(Koch)雪花等.而这篇文章将提供一个可以自由编辑的任意折线分形程序. 软件操作方法如下: 双击FractalLine.exe或FractalLineSP.exe都可以启动程序,其中:一个

【分享】近4000份数学学习资源免费分享给大家

一直以来喜欢收集数学类的教程资源,于是费了好大劲从万千合集站上扒拉了下来,总结归类了一下,一共有将近4000本电子书.经测试,均可免费下载,可能会弹出小广告,可不必理会之.[仅供学术学习和交流,请无用于商业用途.]另外,如有可能,还请尽量支持正版纸质书.   数学史(54)     数学史.rar 55.6 MB   数学的起源与发展.rar 4.3 MB   费马大定理—一个困惑了世间智者358年的谜.pdf 9.5 MB   通俗数学名著译丛14-无穷之旅:关于无穷大的文化史.pdf 14.

opengl纹理映射总结

大概步骤: 1.创建纹理对象,并为他指定一个纹理. 2.确定纹理如何应用到每个像素上. 3.启用纹理贴图 4.绘制场景,提供纹理和几何坐标 过滤:由于我们提供的纹理图像很少能和最终的屏幕坐标形成对应,大小不同,所以需要设置过滤项目.允许我们进行插值或者匀和,指定放大缩小的函数.glTexParameter*(),使用过滤模式GL_NEAREST那么纹理单位最邻近的将被使用,GL_LINEAR那么就用2*2的包含纹理数据的数组加权组作为纹理; 命名纹理对象:glGenTexures(GLSize

OSChina 技术周刊第十三期 —— 每周技术精粹

每周技术抢先看,总有你想要的! 移动开发 [翻译]appcompat v21: 让 Android 5.0 前的设备支持 Material Design... [软件]可直接商用的<动漫之家>APP 开源,基于 CrossApp! [博客]iOS的xmppframework简介 [博客]导入开源库到基于Android Studio构建的项目中 [博客]android studio gradle 配置修改 [博客]更新:通过浏览器直接打开Android应用程序 [资讯]??Android Stu

图像处理之基础---图像缩放中的一些 灰度插值算法

在图像缩放,旋转等一些图像处理中,对图像进行插值是不可缺少的一个步骤,下面对一些常用的插值算法进行介绍: 1.最近邻插值 这种插值方法是最简单的一种插值算法,图像输出的像素值的大小直接设为与其最邻近的点的大小即可,这个算法最简单,不需要多说,可以表示为 f(x,y) = g(  round(x)  ,   round(y)  ) 原图