`
chemingliang
  • 浏览: 134782 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

科学计算:分形几何_随机科赫雪花

阅读更多

%********************************************************************/

%* 科学计算:分形几何_随机科赫雪花                                                         */

%* 挑灯看剑-shuchangs@126.com 2010-5                                                    */

%* 云歌国际(Cloud Singers International www.cocoral.com          */

%********************************************************************/

function RandKoch

k=3; %Koch曲线的迭代次数

p=[0 0;10 0]; %存放结点坐标,每行一个点,初始值为两节点的坐标

n=1; %存放线段的数量,初始值为1

AU=[cos(pi/3) sin(pi/3);-sin(pi/3) cos(pi/3)]; %计算新的节点,向外(上)生长

AD=[cos(pi/3) -sin(pi/3);sin(pi/3) cos(pi/3)]; %计算新的节点,向里(下)生长

c=1;%图像序号计数器

for s=1:k %计算所有的节点坐标

    j=0;

    for i=1:n %每条边计算一次,每条边会新增3个点

        q1=p(i,:); %目前线段的起点坐标

        disp('目前线段的起点坐标');disp(q1);

        q2=p(i+1,:); %目前线段的终点坐标

        disp('目前线段的终点坐标');disp(q2);

        d=(q2-q1)/3;

        j=j+1;r(j,:)=q1; %原起点存入r

        disp('起点坐标(xy');disp(r(j,:));

        %***************************************

        j=j+1;r(j,:)=q1+d; %1点存入r

        disp('1点坐标(xy');disp(r(j,:));

        %***************************************

        %---------------------------------------

        %选择变换矩阵

        if coinTest()==1

            A=AU;

        elseif coinTest()==-1

            A=AD;

        end

        disp('向量d[1*2]');disp(d);

        disp('向量d的变换阵:A[2*2]');disp(A);

        disp('d*A[1*2]');disp(d*A);

        %显示向量d的变换过程图

        %dM=[0 0;d];

        %dT=[0 0;d*A];

        %subplot(5,2,c),plot(dM(:,1),dM(:,2)),title('向量d'),

        %subplot(5,2,c+1),plot(dT(:,1),dT(:,2)),title('变换后的向量d');

        %c=c+2;

        %pause(2);%延迟2

        j=j+1;r(j,:)=q1+d+d*A;%2点存入r

        disp('2点坐标(xy');disp(r(j,:));

        %---------------------------------------

        %***************************************

        j=j+1;r(j,:)=q1+2*d; %3点存入r

        disp('3点坐标(xy');disp(r(j,:));

        %***************************************

        disp('暂存坐标点(xy');disp(r);

        disp('*********************************')

    end

    n=4*n;

    clear p

    p=[r;q2];

end

plot(p(:,1),p(:,2));

disp('科赫曲线坐标+--x--+--y--+');disp(p);

axis equal

end

 

%定义选择1-1函数

function rtnV=coinTest() %抛币试验函数,返回值为1(正)或-1(反)

   x=rand;

   if x<0.5

       rtnV=-1;

   elseif x>0.5

       rtnV=1;

   else

       rtnV=coinTest();

   end

end

运行结果测试如下

 

  • 大小: 11.5 KB
分享到:
评论

相关推荐

    fra.rar_分形 压缩_分形 matlab_分形 压缩_分形图像

    4. fengye.m:在中文里,“风叶”可能暗示了某种类似分形几何的形状,比如科赫曲线或者雪花曲线,这可能是一个生成此类分形图案的程序。 5. kochp.m 和 koch.m:这两个文件很可能与科赫曲线有关。科赫曲线是一种...

    Python 分形算法__代码里开出来的艺术之花.doc

    Python 分形算法__代码里开出来的艺术之花 Python 分形算法是使用计算机程序模拟出大自然界的分形几何图案,是分形几何数学与计算机科学相...科赫雪花是分形几何中的一种典型图形,可以通过 Python 来实现其生成过程。

    分形几何,CS海报

    1. **图像生成与渲染**:分形几何可以生成极具视觉吸引力的图像,如曼德勃罗集、科赫雪花等,这些图像在艺术、游戏设计和虚拟现实等领域有着广泛应用。通过算法模拟分形过程,可以创造出无限细节的自然景观,如云层...

    CAGD-instance.zip_分形几何_Visual_C++_

    它不仅涉及理论,还包括了生成和计算分形图像的方法,如曼德勃罗集和科赫雪花等经典例子。 2. 数据点参数化:在CAGD中,数据点的参数化是将几何对象转换为一组可控制的参数的关键步骤。这些参数可以是曲线、曲面...

    MATLAB.rar_分形几何_matlab_

    在MATLAB环境中,分形几何是一种独特而引人入胜的研究领域,它涉及到数学、计算机科学和图形学等多个学科的交叉。"MATLAB.rar_分形几何_matlab_"这个压缩包显然包含了两个与分形几何相关的MATLAB源代码文件:fractal...

    fractal.zip_分形几何_matlab_

    分形几何中有许多经典的形状,如科赫雪花、曼德布罗集、谢尔宾斯基三角等。这些预定义的几何形状可以通过特定的迭代过程生成,每次迭代都会增加更多的细节。MATLAB脚本可能包含用于生成这些形状的函数,用户只需要...

    code_分形算法_分型代码_

    8. fractal.py:这是一个通用的分形生成器,可能包含了多种分形算法,如曼德勃罗集、科赫雪花等,或者是一个框架,允许用户选择不同的分形模型进行渲染。 9. spiral.py:螺旋形状在自然界中很常见,比如太阳系中的...

    Fractal.rar_fractal_fractal matlab_matlab分形_分形_分形 matlab

    学习和理解这些分形程序可以帮助我们更好地理解分形理论,同时提高MATLAB编程技巧,特别是在科学计算和可视化方面。 总结来说,"Fractal.rar" 文件提供了一个学习和实践MATLAB分形编程的机会,通过对 "Fractal.txt...

    fractal-geometry:分形几何程序

    在这里,程序员可能利用Python的科学计算库如NumPy、SciPy和Matplotlib等来实现分形的计算和可视化。 分形几何中的经典例子包括曼德勃罗集、科赫曲线、谢尔宾斯基三角形等。这些形状的生成往往涉及到复数运算、迭代...

    雪花分形-OpenGL

    雪花分形最著名的例子是科赫雪花,它是通过将等边三角形的每一条边替换为更复杂的形状(通常是四个小等边三角形)来构建的,这个过程可以无限重复,每次迭代都会增加图形的复杂度。 在OpenGL中实现雪花分形,首先...

    分形几何的理论和程序 重要

    ### 分形几何的理论与程序 #### 引言 分形几何是一门融合了艺术与数学的新兴领域,它不仅能够创造出令人惊叹的美丽图像,还能有效地描述自然界中的许多复杂现象。传统上,我们习惯于用直线、圆、立方体等简单的...

    科赫雪花的绘制代码及用pyinstaller生成的exe文件

    科赫雪花,又称为科赫曲线或科赫雪花曲线,是一种经典的分形几何形状,由19世纪末瑞典数学家Helge von Koch提出。它的构造过程基于迭代算法,每次迭代都会将直线段替换为特定的规则图案,最终形成具有无限长度但有限...

    基于科赫雪花曲线激励装置的涡流传感器的金属裂纹检测研究

    在金属裂纹检测领域,涡流传感器的灵敏度直接影响到检测结果的准确性和可靠性,而本研究提出的方法通过采用分形几何科赫雪花图形作为激励装置,为涡流传感器的设计提供了新的思路和方法。 总结起来,这项研究的意义...

    VB分形算法代码(杨辉三角、梅花曲线、雪花……).rar

    在这个名为“VB分形算法代码(杨辉三角、梅花曲线、雪花……).rar”的压缩包中,包含了一系列用VB实现的分形算法源代码,这些算法展现了分形几何的美丽与复杂性。分形是数学的一个分支,它研究那些在不同尺度上具有...

    tiufan.zip_多重分形_多重分形谱

    经典的例子包括科赫雪花和曼德勃罗集。分形的自相似性使得它们的维度超越了传统欧几里得空间的整数维数,通常用分形维数来描述。 2. **多重分形**:相对于单一的分形维数,多重分形考虑了不同尺度下的局部变化,...

    分形koch雪花图(MATLAB)

    在这个MATLAB版本的Koch雪花图中,用户可以体验到如何用编程方式来构建和探索分形几何。 Koch雪花图的构造过程相当简单,可以从一个等边三角形开始。每次迭代,每个边都会被替换为四个相同长度的小边,形成一个类似...

    毕业设计MATLAB_科赫曲线.zip

    科赫曲线是一种著名的分形几何图形,它通过迭代过程构建,每次迭代都将直线段替换为更复杂的形状,以此形成自相似的雪花状结构。在MATLAB中实现科赫曲线,涉及到的主要知识点包括: 1. **MATLAB基础**:MATLAB是一...

    用非递归方法解决分形几何问题

    例如,著名的科赫雪花曲线(Koch snowflake)就是一个典型的例子,它的构造是通过反复使用一个特定的生成元来替代原始线条中的每个线段。 分形的生成通常涉及三个基本元素: 1. **原形**(Initiator):作为构造...

    python 实现分形 课程设计 fractals 包括 朱莉娅集 科赫雪花 曼德布洛特 谢尔平斯基三角

    python 实现分形 课程设计 fractals 包括 朱莉娅集 科赫雪花 曼德布洛特 谢尔平斯基三角 朱莉娅集 科赫雪花 曼德布洛特 谢尔平斯基三角 Julia Sets Koch Snowflake Mandelbrot Sierpinski Triangle ...

    GFractal:分形发生器-开源

    3. **科赫曲线**:另一经典例子,通过将直线段不断替换为更小的等边三角形,形成无限细分的雪花形状。 **GFractal的功能和应用** 1. **图形生成**:GFractal提供了一系列参数,让用户可以调整生成不同类型的分形。...

Global site tag (gtag.js) - Google Analytics