康托尔点集matlab实数,仿照科赫曲线程序 , 按照课件上的算法写出康托尔点集 – MATLAB中文论坛...

#include

#include

#include

#include "dislin.h"

#define pi 3.1415926

#define N 4                                //在 此 处 改  N 的 值 (N=0,1 时 尚 可, 从 2 开 始 就 不 正 常 了)

void koch(float ax,float ay,float bx,float by,int n)

{

int np,nq,nl,nm;

float x[2],y[2];

float cx,cy,dx,dy,ex,ey,l,alpha;

x[0]=ax;                                // 当 n 等 于 0 时, 画 直 线

y[0]=ay;                                //

x[1]=bx;                                //

y[1]=by;                                //

if (n<=0)                                //

{                                        //

curve(x,y,2);                        //

}                                        //

else

{

n=n-1;                                                                //迭 代 算 法

np=n;nq=n;nl=n;nm=n;

cx=ax+(bx-ax)/3;

cy=ay+(by-ay)/3;

ex=bx-(bx-ax)/3;

ey=by-(by-ay)/3;

l=sqrt((ex-cx)*(ex-cx)+(ey-cy)*(ey-cy));

alpha=atan((ey-cy)/(ex-cx));

if((ex-cx)<0){

alpha=alpha+pi;

}

dy=cy+sin(alpha+pi/3)*l;

dx=cx+cos(alpha+pi/3)*l;

koch(ax,ay,cx,cy,np);

koch(cx,cy,dx,dy,nl);

koch(dx,dy,ex,ey,nm);

koch(ex,ey,bx,by,nq);

}

}

int main()

{

metafl("CONS");                                                //作 图 声 明

scrmod("REVERSE");

disini ();

//color("red");

graf(0.,4.,0.,2.,-1.0,2.5,0.,1.);

titlin("test1",1);

title();

name("X","x");

name("Y","y");

incmrk(0);

marker(21);

hsymbl(1);

koch(0.0,0.0,4.0,0.0,N);           //调 用 迭 代 函 数 ,分 别 控 制 起 点 x,y 坐 标 及 终 点 x,y 坐 标 及 N 的 值。

disfin ();

}

求帮忙写出康托尔点集程序,谢谢谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值