首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心计算机论文计算机理论
   用计算机程序制作三维立体画      ★★★ 【字体: 】  
用计算机程序制作三维立体画
收集整理:佚名    来源:本站整理  时间:2009-01-10 12:09:05   点击数:[]    

DER,1,fOrigin);
if( BITMAPFILEHEADER.bfType1=='B' && BITMAPFILEHEADER.bfType2=='M'
&& BITMAPINFOHEADER.biWidth==WIDTH && BITMAPINFOHDADER.biHeight==NUM-LINE
&& BITMAPINFOHEADER.biBitCount==BITS-PER-PIXEL
&& BITMAPINFOHEADER.biCompression==COMPRESSION)
fread(RGBQUAD,SIZE-OF-RGBQUAD,NUM-COLOR,fOrigin);
else {
fclose(fOrigin);
printf("File %s is not fit for this program!/n",fn-org);
getch();
exit(3);
}
}
else {
printf("File %s does not exist!/n",fn-org);
getch();
exit(4);
}
if( (fResult=fopen(fn-result,"wb"))!=NULL){
fwrite(&BITMAPFILEHEADER,SIZE-OF-BITMAPFILEHEADER,1,fResult);
fwrite(& BITMAPINFOHIADER,SIZE-OF-BITMAPINFOHEADER,1,fResult);
fwrite(RGBQUAD,SIZE-OF-RGBQUAD,NUM-COLOR,fResult);
}
else {
printf("File %s open error!/n",fn-result);
getch();
exit(5);
}
for(line=0;line<NUM-LINE;line++){
printf("line=%d/n",line);
cur-offset=(unsigned long int)PIXEL-DATA-OFFSET+(unsigned long int)BYTE-
PER-LINE*line;
fseek (fLayer,cur-offset,SEEK-SET);
fseek (fOrigin,cur-offset,SEEK-SET);
for(i-byte=0;i-byte<BYTE-PER-LINE;i-byte++) {
fread(&tmp-byte1,1,1,fLayer);
fread(&tmp-byte2,1,1,fOrigin);
for(i-pixel=0;i-pixel<PIXEL-PER-BYTE;i-pixel++) {
x=i-byte*PIXEL-PER-BYTE+i-pixel;
if(x<WIDTH) {
h[x]=(unsigned char) (tmp-byte1<<(BITS-PER-PIXEL*i-pixel)
) /((unsigned char)0x80>>(BITS-PER-PIXEL-1));
org-color[x]=(unsigned char) (tmp-byte2<<(BITS-PER-PIXEL*i-pixel))
/((unsigned char)0x80>>(BITS-PER-PIXEL-1));
}
}}
for(x=0;x<WIDTH;x++) {
dot[x].color=0;
dot[x].nxt-x=NO-DOT;
dot[x].pri-x=NO-DOT;
if((x+EYE-SPACE)<WIDTH) dot[x].nxt-x=x+EYE-SPACE;
if((signed)x-EYE-SPACE)>=0)dot[x].pri-x=x-EYE-SPACE;
}
for(layer=1;layer<NUM-COLOR;layer++)
for(x=0;x<WIDTH;x++) {
left-x=x-EYE-SPACE/2+(layer/2);
right-x=x+EYE-SPACE/2-((layer+1)/2);
if((h[x]==layer)&&(left-x>=0)&&(rignt-x<WIDTH)) {
if (dot[left-x].nxt-x!=NO-DOT) dot[dot[left-x].nxt-x].pri-x=NO
-DOT;
dot[left-x].nxt-x=right-x;
if (dot[right-x].pri-x!=NO-DOT) dot[dot[right-x].nxt-x].nxt-x=
NO-DOT;
dot[right-x].pri-x=left-x;
}
}
for(x=0;x<WIDTH;x++) {
if(dot[x].pri-x==NO-DOT) {
dot[x].color=org-color[x];
tmp-x=x;
while( dot[tmp-x].nxt-x!=NO-DOT) {
tmp-x=dot[tmp-x].nxt-x;
dot[tmp-x].color=org-color[x];
}
}
}
fseek(fResult,cur-offset,SEEK-SET);
for(i-byte=0;i-byte<BYTE-PER-LINE;i-byte++) {
tmp-bytel=0;
for(i-pixel=0;i-pixel<PIXEL-PER-BYTE;i-pixel++) {
x=i-byte*PIXEL-PER-BYTE+i-pixel;
if(x<WIDTH)
tmp-byte1=(unsigned char) (tmp-byte1<<(BITS-PER-PIXEL*i
-pixel)) +dot[x].color;
}
fwirte(&tmp-byte1,1,1,fResult);
}
}
fclose(fLayer);fclose(fOrigin);fclose(fResult);
}

参考文献
孙志辉、王萃寒、王茜.实用Windows 3.1详解.北京:电子工业出版社,1994.

上一页  [1] [2] [3] 


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:非Access数据库在VB中的编程及应用

  • 下一篇文章:向IC卡系统集成业务投资的可行性
  • 返回上一页】【打 印】【关闭窗口
    中查找“用计算机程序制作三维立体画”更多相关内容 5VAR论文频道
    中查找“用计算机程序制作三维立体画”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››中小企业办公自动化系统的设计与实...
  • ››未雨绸缪:关于我国电子商务税收对...
  • ››网上书店为钱做秀 行业走势两极分...
  • ››Win2000索引服务的WEB应用
  • ››宽带化――电信发展的必由之路务
  • ››电子商务中x种错误思路和做法
  • ››网络营销与传统营销相比有何优势
  • ››Internet的下一个热点 从内容走向服...
  • ››基于CNAPS的流水号管理方法
  • ››网络时代的财务与会计:管理集成与...
  • ››用计算机程序制作三维立体画
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .