asd741
发贴: 3
积分: 0
|
于 2006-03-31 16:21
我有2个C语言的代码,运行后挺漂亮的,小弟java还没学到家,不会改,有兴趣的朋友可以来改改 代码可能写的有点含糊,没有加注释 这两个代码分别是朱丽叶和曼德布罗特叠带算法。
第一个代码 #include<stdio.h> #include<conio.h> #include<graphics.h> void main()
{ int gdriver=DETECT,gmode; int i,j,k,M=4; float hx,hy,x0,y0,x1,y1,a,b,r; initgraph(&gdriver,&gmode,"");
hx=(2.3+2.3)/480; hy=(2.3+2.3)/480;
for(i=0;i<480;i++) for(j=0;j<480;j++) { a=-2.3+i*hx; b=-2.3+j*hy; x0=0; y0=0; k=0;
TWO: x1=x0*x0-y0*y0+a; y1=2*x0*y0+b; r=x1*x1+y1*y1; k=k+1;
if(r>M) { putpixel(i,j,k); } if(k==1000) { putpixel(i,j,0); }
if(r<M&&k<1000) { x0=x1; y0=y1; goto TWO; } } getch(); closegraph(); }
第二个代码 #include <stdio.h> #include <graphics.h> #include <stdlib.h> #include <conio.h> void main() { int gdriver=DETECT,gmode; int i,j,k; float x0,x1,y0,y1,hx,hy,a,b,r; initgraph(&gdriver,&gmode,"");
hx=3.6/640; hy=3.6/480;
printf("a="); scanf("%f",&a); printf("b="); scanf("%f",&b);
for(i=0;i<640;i++) for(j=0;j<480;j++) { x0=-1.8+i*hx; y0=1.8-j*hy; k=0; A: x1=x0*x0-y0*y0+a; y1=2*x0*y0+b; k=k+1; r=x1*x1+y1*y1; if(r>4) { putpixel(i,j,k);
} if(k==256) { putpixel(i,j,0); } if(r<4&&k<256) { x0=x1; y0=y1; goto A; }
} getch(); closegraph(); }
好好学习 天天向上 求职--软件开发
|