用计算机程序制作三维立体画

用计算机程序制作三维立体画

ID:25741265

大小:66.50 KB

页数:7页

时间:2018-11-22

用计算机程序制作三维立体画_第1页
用计算机程序制作三维立体画_第2页
用计算机程序制作三维立体画_第3页
用计算机程序制作三维立体画_第4页
用计算机程序制作三维立体画_第5页
资源描述:

《用计算机程序制作三维立体画》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、用计算机程序制作三维立体画 摘要该文介绍了三维立体画的原理和制作方法,并给出了用C语言编写的源程序。借助于Pbrush.exe,读者可以自己设计和欣赏各式各样的三维立体画。目前,市面上正在流行各式各样的立体画,其特点是从外表来看与一般的图案很相似,但是双眼紧盯着注视片刻后,一恍惚之间眼前便出现了画中画——立体像。笔者第一次看到这种画便被发明者的创意所倾倒。利用众所皆知的双眼视差原理,竟能在一张平面纸上制造出如此奇幻。但是立体画本身除了其发明者的灵感和画面创作者的别出心裁之外,其原理上并无神秘之处。用

2、计算机程序来实现它,可说是易如反掌。笔者用一个晚上时间,便在微机上用BASIC语言实现了简单形体——平面圆饼的立体画。当然,要使该程序具有完善的功能,提高其制作速度,还是应该用编译语言(如C语言)来编写。本文中给出的源程序借助于Windop。当然,要设计出令人赏心悦目的立体画,必须在立体形体和图案素材的选择和搭配上做到天衣无缝,独具匠心。09A04007.GIF;图809A04008.GIF;图909A04009.GIF;图10程序清单/*--from1995.4.19--to1995.5.18--

3、--*/include<stdio.h>#definePRESSION0#defineSIZE-OF-BITMAPFILEHEADER14#defineSIZE-OF-BITMAPINFOHEADER40#defineSIZE-OF-RGBQUAD4#definePIXEL-DATE-OFFSET14+40+4*16/*SIZE-OF-BITMAPFILEHEADER+SIZE-OF-BITMAPINFOHEADER+BITS-PER-PIXEL*NUM-COLOR*/#defineNU

4、M-COLOR16#defineNUM-LINE400#defineAPFILEHEADER{unsignedcharbfType1,bfType2;/*alBITMAPFILEHEADERtobitmappixeldatainthefile*/}BITMAPFILEHEADER;structtagBITMAPINFOHEADER{unsignedlongintbiSize,/*sizeofBITMAPINFOHEADER*/bieter,/*0,oropt,hres.*/biYPelsPerMet

5、er,/*0,oropt,hres.*/biClrUsed,/*normally0,cansetaloportant;/*normally0*/}BITMAPINFOHEADER;structtagRGBQUAD{unsignedcharrgbBlue,/*blueintensity,0-255*/rgbGreen,/*greenintensity,0-255*/rgbRed,/*redintensity,0-255*/rgbReserved;/*reserved,settoZero*/}RGBQU

6、AD[NUM-COLOR];char*fn-layer="layer.bmp";char*fn-org="origin.bmp";char*fn-result="result.bmp";FILE*flayer,*fOrigin,*fResult;unsignedchartmp-byte1,tmp-byte2;unsignedintline,i-byte,i-pixel,x;unsignedintlayer;intleft-x,right-x;tmp-x;unsignedlongintcur-offs

7、et;unsignedcharh[APFILEHEADER,SIZE-OF-BITMAPFILEHADER,1,fLayer);fread(BITMAPINFOHEADER,SIZE-OF-BITMAPINFOHEADER,1,fLayer);if(BITMAPFILEHEADER.bfType1=='B'BITMAPFILEHEADER.bfType2=='M'BITMAPINFOHEADER.biAPINFOHEADER.biHeight==NUM-LINEBITMAPINFOHEADER.bi

8、BitCount==BITS-PER-PIXELBITMAPINFOHEADER.bipression==PRESSION)fread(RGBQUAD,SIZE-OF-RGBQUAD,NUM-COLOR,fLayer);else{fclose(fLayer);printf("File%sisnotfitforthisprogram!",fn-layer);getch();exit(1);}}else{printf("File%sdoesnotexist!",f

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。