哎什么三维画 哦 ,把我整成了近视都没有看出来有啥子东东。你要陪我钱买眼镜
当时是真的,现在也是真的,就算我们没有变,世界也已经改变了。
/************************************************/ /* */ /* 三维画生成程序,我的个人主页 */ /* <span style="color: #008000; text-decoration: underline;">http://www.[/color] */ /* 中的三维画不是用此程序生成,但原理一样 */ /* 此程序用 Turbo C 2.00 调试通过 */ /* */ /* 刘红石 */ /************************************************/ //vc6+EasyX编译通过 # include <stdlib.h> # include <graphics.h> # include <conio.h> # define NO 999 /* 一个标志,指示有无对应的点*/ # define W 64 /* 重复的图案宽度 */ # define MAXX 639 /* 三维画最大宽度 */ # define MAXY 479 /* 三维画最大高度 */ # define MAXZ 7 /* 三维形象最大层数 */ int dot[MAXX+1][3]; /* 下面数据决定看到的三维形象 */ char *hf[]={ "11111111111111111111111111111111", "11111111111111111111111111111111", "11111111111111111111111111111111", "11117777777711111177777777711111", "11117777777771111177111111771111", "11111111117771111177111111771111", "11111111117771111177111111771111", "11117777777771111177111111771111", "11111111117771111177111111771111", "11111111117771111177111111771111", "11117777777771111177111111771111", "11117777777711111177777777711111", "11111111111111111111111111111111", "11111111111111111111111111111111", "11112233445566776655443322111111", "11112233445566776655443322111111", "11111111111111111111111111111111", "11111111111111111111111111111111", "11112223344456665443322211111111", "11112223344456665443322211111111", "10101010101010101010101010101010", "01010101010101010101010101010101", "10101010101010101010101010101010", "01010101010101010101010101010101"}; void main() { int lx,rx,tx; int gd=0,gm; int i; int x,y,h; IMAGE p; initgraph(640, 480); /* 初始化图形设备 */ for(i=1;i<=8000;i++){ /* 在屏幕上画出随机的线,作为三维画的底纹 */ setcolor(WHITE); x=rand()%MAXX; y=rand()%MAXY; line(x,y,x+rand()%7,y+rand()%(7)); } p.getimage(0, 0, 19, 1); for(y=0;y<= MAXY;y+=20){ /* 从0到MAXY一行一行进行 */ for(x=0;x<=MAXX;x++){ /* 生成平面数据 */ dot[x][1]=NO; dot[x][2]=NO; if (x+W <= MAXX) dot[x][1]= x + W; if (x-W >= 0) dot[x][2]= x - W; } for(h=1;h<=MAXZ;h++){ /* 从1层到MAXZ层,逐层处理 */ for(x=0;x<=MAXX;x++){ lx = x - W /2 + h; /* 越靠前的图层,两点的距离越近 */ rx = x + W / 2 - h; if (hf[y/20][x/20]-48==h && lx >= 0 && rx <= MAXX){ if (dot[lx][1] !=NO) dot[dot[lx][1]][2]= NO; dot[lx][1] = rx; if(dot[rx][2] != NO) dot[dot[rx][2]][1] = NO; dot[rx][2] = lx; } } } /* 依据前面计算得到的数据画出一行三维画 */ for(x=0;x<=MAXX;x++){ if(dot[x][2]==NO){ dot[x][0] = x; tx = x; while(dot[tx][1]!=NO){ tx = dot[tx][1]; dot[tx][0] = x; } } if(dot[x][0] != x){ p.getimage(dot[x][0],y,dot[x][0],y+19); p.putimage(x,y); } } } getch(); /* 等待按键 */ closegraph(); /* 关闭图形设备 */ }