C语言 随机分形,C程序绘制分形(随机迭代算法画羊齿叶、蕨叶)●疑问请教●急!...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

源程序如下:

/*Program 1   (IFS=PROGRAM TO GENERATE ITERATED FUNCTION SYSTEM)*/

#include

#include

#include

#include

#define NUM 10

#define Min(x,y) ((x)

#define Max(x,y) ((x)>(y)?(x):(y))

void image_draw(char finename[13],int color);

main(void)

{

int color;

char filename[13];

clrscr();

window(20,8,60,12);

textattr(WHITE|BLUE*16);

clrscr();

cprintf("\n ENTER filename:");

cscanf("%s",filename);

cprintf("\n Enter picture color(2~15):");

cscanf("%d",&color);

image_draw(filename,color);

getch();

exit(0);

}

void image_draw(char *filename,int color)

{

int i,j,k,no_transformations,temp,xoffset,yoffset,px,py,p_cum[7],flag=0,mo=1,dr=VGA;

float a[NUM][7],f,p_sum=0,xscale,yscale,newx=0,XMin=0,XMax=0,YMax=0,YMin=0,x=0,y=0;

FILE *fin;

if((fin=fopen(filename,"rb"))==NULL)

{

cprintf("\n File '%s' not found.",filename);

exit(0);

}

fscanf(fin,"%d",&no_transformations);

for(i=0;i

{

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

{

fscanf(fin,"%f",&f);

a[i][j]=f;

}

}

fclose(fin);

initgraph(&dr,&mo,"f:\\turboc2");

setbkcolor(1);

for(i=0;i

{

p_sum+=a[i][6];

p_cum[i]=p_sum*32767;

}

while (kbhit())

{

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

{

temp=rand();

for(k=0;k

{

if(temp

break;

}

newx=(a[k][0]*x+a[k][1]*y+a[k][4]);

y=(a[k][2]*x+a[k][3]*y+a[k][5]);

x=newx;

if((flag==0)&&(i>15))

{

XMax=Max(x,XMax);XMin=Min(x,XMin);

YMax=Max(y,YMax);YMin=Min(y,YMin);

}

else

{

px=(x*xscale+xoffset);

py=(y*yscale+yoffset);

if((px>=0)&&(px<639)&&(py>=0)&&(py<349))

putpixel(px,349-py,color);

}

}

if(flag==0)

{

xscale=418/(XMax-XMin);

yscale=Min(315/(YMax-YMin),xscale/1.38);

if(yscale

xscale=1.38*yscale;

xoffset=320-(XMax+XMin)*xscale/2;

yoffset=175-(YMax+YMin)*yscale/2;

flag=1;

}

}

getch();

closegraph();

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值