用MATLAB分形画龙曲线

用MATLAB分形画龙曲线,第1张

clear;clc;close all

w=[0824074 0281482 -0212346 0864198 -1882290 -0110607

0088272 0520988 -0463889 -0377778 0785360 8095795];

N=10000;

x=zeros(1,N);

y=zeros(1,N);

x0=0;

y0=0;

for i=1:N

if rand<08

j=1;

else

j=2;

end

x01=w(j,[1 2 5])[x0,y0,1]';

y01=w(j,[3 4 6])[x0,y0,1]';

x(i)=x01;

y(i)=y01;

x0=x01;

y0=y01;

end

plot(x,y,'')

matlab代码, 不包括显示部分

r=200;

for k=-100:35

for l=-55:50

y=0;

k1=k/50;

l1=l/50;

z=0;

c=k1+l11i;

z=z^2+c;

n=1;

b=imag(z);

a=real(z);

while (-2<a)&&(a<2)&&(-2<b)&&(b<2)&&(n<r);

z=z^2+c;

n=n+1;

b=imag(z);

a=real(z);

end

M(k+101,l+56)=log10(n);

end

end

没见你的程序代码,不知用的啥命令,但是,若用corrcoef命令,句式[r,p]=corroef(a)时,r中的数值可能会出现负值。如: A = randn(50,3); A(:,4) = sum(A,2); [R,P] = corrcoef(A) 结果是: R = 10000 01135 00879 07314 01135 10000 -01451 05082 00879 -01451 10000 05199 07314 05082 05199 10000 P = 10000 04325 05438 00000 04325 10000 03146 00002 05438 03146 10000 00001 00000 00002 00001 10000

把下面的程序保存为plotkochm,然后在command windows中输入plotkoch(8)即可,其中8是迭代次数,你可以换成别的整数。

function plotkoch(n)

[x,y]=koch(n);

fill(x,y,'w');

text(0,0,{'\centerline{The area surrounded by Koch Snow Curve is $\displaystyle\frac{2\sqrt {3}{n}^{2}}{5}$}',

'\centerline{($n$ is the side length of the original triangle)}',

'\centerline{The dimension of the curve is $\log{_34}$}'},

'interpreter','latex','horizontalalignment','center')

axis equal off;

function [x,y]=koch(n)

if n==1

t=linspace(0,2pi,4);

x=cos(t);

y=sin(t);

else

p=1/3;h=psqrt(3)/2;

[x,y]=koch(n-1);

xx=x(1);yy=y(1);

dx=diff(x);dy=diff(y);

ax=(1-p)x(1:end-1)+px(2:end);

ay=(1-p)y(1:end-1)+py(2:end);

bx=px(1:end-1)+(1-p)x(2:end);

by=py(1:end-1)+(1-p)y(2:end);

ox=(x(1:end-1)+x(2:end))/2+hdy;

oy=(y(1:end-1)+y(2:end))/2-hdx;

x=[reshape([x(1:end-1);ax;ox;bx],1,[]),x(end)];

y=[reshape([y(1:end-1);ay;oy;by],1,[]),y(end)];

end

#include<graphicsh>

#include<stdlibh>

#include<mathh>

int main()

{

float m,dx,dy,x,y,x_n,y_n,Cx,Cy;

int n,i,j,L=4;

int gdriver=DETECT,gmode; //gdriver和gmode分别表示图形驱动器和模式,gdriver=DETECT是在测试显示器硬件

initgraph(&gdriver,&gmode,""); //初始化图形模式

setbkcolor(1); //设置背景色为蓝色

dx=30/639;

dy=22/479;

for(i=0;i<639;i++)

{

Cx=-19+idx;

for(j=0;j<479;j++)

{

Cy=-12+jdy;

x=y=0;

for(n=0;n<=1000;n++)

{

x_n=xx-yy+Cx;

y_n=2xy+Cy;

m=x_nx_n;

if(m>L) break;

x=x_n;

y=y_n;

}

putpixel(i,j,(int)(04m)%16); //在指定位置画一像素(坐标(i,j),第三个计算式为画点的颜色)

}

}

getch(); //任意键返回

closegraph(); //关闭图形模式并返回文本模式

}

关于颜色的设置如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━

符号常数 数值 含义 字符或背景

——————————————————————————

BLACK 0 黑 两者均可

BLUE 1 兰 两者均可

GREEN 2 绿 两者均可

CYAN 3 青 两者均可

RED 4 红 两者均可

MAGENTA 5 洋红 两者均可

BROWN 6 棕 两者均可

LIGHTGRAY 7 淡灰 两者均可

DARKGRAY 8 深灰 只用于字符

LIGHTBLUE 9 淡兰 只用于字符

LIGHTGREEN 10 淡绿 只用于字符

LIGHTCYAN 11 淡青 只用于字符

LIGHTRED 12 淡红 只用于字符

LIGHTMAGENTA 13 淡洋红 只用于字符

YELLOW 14 黄 只用于字符

WHITE 15 白 只用于字符

BLINK 128 闪烁 只用于字符

以上就是关于用MATLAB分形画龙曲线全部的内容,包括:用MATLAB分形画龙曲线、有关 曼德勃罗集合(或者 分形维度) 在MATLAB 或者 C++ 中的实现、用matlab灰度处理图片然后fraclab盒维数计算分形后,如何导出r和n等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10170073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存