深圳电子odm厂家:谁帮俺注释一个分形图的C语言程序啊!!!

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 19:11:11
#include<graphics.h>
#include<stdlib.h>
#include<math.h>

int main()
{
float m,dx,dy,x,y,x_n,y_n,Cx,Cy;
int n,i,j,L=4;

int gdriver=DETECT,gmode;

initgraph(&gdriver,&gmode,""); /*chushihua*/
setbkcolor(1);
dx=3.0/639;
dy=2.2/479;
for(i=0;i<639;i++)
{
Cx=-1.9+i*dx;
for(j=0;j<479;j++)
{
Cy=-1.2+j*dy;
x=y=0;
for(n=0;n<=1000;n++)
{
x_n=x*x-y*y+Cx;
y_n=2*x*y+Cy;
m=x_n*x_n;
if(m>L) break;
x=x_n;
y=y_n;
}
putpixel(i,j,(int)(0.4*m)%16);
}
}
getch();
closegraph();
}

中间很多都是计算性质的,纯数学问题么俺就不跟您注释了呵呵,重点写一下关于图形函数的几个地方吧

#include<graphics.h>
#include<stdlib.h>
#include<math.h>

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=3.0/639;
dy=2.2/479;
for(i=0;i<639;i++)
{
Cx=-1.9+i*dx;
for(j=0;j<479;j++)
{
Cy=-1.2+j*dy;
x=y=0;
for(n=0;n<=1000;n++)
{
x_n=x*x-y*y+Cx;
y_n=2*x*y+Cy;
m=x_n*x_n;
if(m>L) break;
x=x_n;
y=y_n;
}
putpixel(i,j,(int)(0.4*m)%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 闪烁 只用于字符
━━━━━━━━━━━━━━━━━━━━━━━━━━━