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


    计算机程序制作三维立体画
    摘 该文介绍三维立体画原理制作方法出C语言编写源程序

            助Pbrushexe读者设计欣赏式样三维立体画

             目前市面正流行式样立体画特点外表般图案相似双眼紧盯着注视片刻恍惚间眼前便出现画中画——立体

            笔者第次种画便发明者创意倾倒

            利众皆知双眼视差原理竟张面纸制造出奇幻

            立体画身发明者灵感画面创作者出心裁外原理神秘处

            计算机程序实现说易反掌

            笔者晚时间便微机BASIC语言实现简单形体——面圆饼立体画

            然该程序具完善功提高制作速度应该编译语言(C语言)编写

            文中出源程序助Windows中BMP图形文件家制作意形态立体画

             立体画原理 立体电影知道双眼分接收视角拍摄图时便会产生立体感

            眼长期观察惯造成

            立体电影原理相立体摄影风景片早已出现

            图1中出种立体片示意图

            左右片分双眼角度观察棱锥体时左右眼图(图2)

            左眼棱锥顶端右错动图右眼棱锥顶端左错动图


            果张硬卡片隔开两张片(图3)@@09A04000GIF图1@@ @@09A04001GIF图2@@ @@09A04002GIF图3双眼分两张画会立体棱锥体

            种立体片观察方法测绘学中早已采

             目前三维立体画形式相

            样张画面呈现立体呢首先分析样立体画中出立体形体

            前面说知道眼立体感双眼必须视差双眼图应该差异

            立体画时恍惚程

            程中双眼视中心发生错动(图4)

            样@@09A04003GIF图4左眼画面偏左右眼画面偏右

            @@偏左偏右容相图1左右片双眼会感立体形体

            否图1左右片分做偏左偏右简单重叠立体画呢 显然行

            够合成立体画偏左偏右满足定条件

             果图5中表现棱锥体表面图案话 @@09A04004GIF图5素a素a应该具相颜色视角观察@@实体点

            素b素b素c素c情况相

            两幅画分作偏左图偏右图部分重叠成画面时新画面种关系应该表现aabbcc(图6)

            时应该注意张合成 @@09A04005GIF图6画面点a偏右图点a偏左图点b


            @@张画面相坐标点素种颜色产生新素关系ab

            外点a偏左图点a偏右图点cac

            类推点b点c类似情况

            出现新关系表示式ccaabb

            构成立体画面素必须满足条件等颜色素链

            立体画点属某条等颜色素链

            立体画图案呈现出某种程度水周期性原

             意立体形状构造出相应种等素链规律充填图案立体画

            正前面述种等素链条件约束然意构造出种形体立体画立体形体表面图案完全意愿

             二制作立体画计算机程序 双眼水性等素链水方分布垂直方关

            程序中素行处理程相互独立

            制作立体画程序结构图图7

             @@09A04006GIF图7 制作立体画程序结构图结构图中关键建立等@@素链

            具体处理

            立体形体点首先求出该点偏左图偏右图坐标

            图1中棱锥顶点例实际X坐标中心点双眼位置正方顶点偏左图右位移偏右图左位移位移值显然高度关该点坐标越高位移值越


            abc等点位移

            求出点偏左图偏右图坐标算出合成图(图6)应坐标 建立等素关系aa

            立体形体水剖面全部点处理合成图条等素链关系然形成

             外出现高点遮盖低点情况等素链构造应该低点高点逐层进行高点等素关系代低点等素关系

            程序结构图中首先没形体存背景面构造等素链’原

             面出根结构图C语言编写源程序

            程序中坐标点应结构型数包含前素素两指针

            前素指针指该坐标点作偏右图点偏左图应点坐标

            素指针指该坐标点作偏左图点偏右图应点坐标

            程序中立体形体水剖面高低坐标数原始图案素材输出立体画文件格式采Windows31 Pbrush产生BMP图形文件格式

            图幅求640×40016种颜色方式

            中立体形体点高低坐标图形文件中颜色值表示该图形文件图形带颜色等高线图安全相

            通常情况16色BMP文件中颜色值序黑色暗红色暗绿色暗黄色暗蓝色暗紫色暗青色暗灰色灰色明红色明绿色明黄色明蓝色明紫色明青色白色

            程序采简单图案充填方案条链素点皆采该链第素颜色

            程序中常数EYESPACE表示偏左图偏右图间偏差BODOT表明链首尾指针标志


             该程序寄生Windows 31中Pbrush软件

            助构筑立体形体(立体形体水剖面高低坐标数文件图8)设计原始图案(图9)

            程序运行逐行输入处理两文件中图形然输出立体画结果文件(图10)

            Pbrush观赏立体画resultbmp

            然设计出令赏心悦目立体画必须立体形体图案素材选择搭配做天衣缝独具匠心

             @@09A04007GIF图8@@ @@09A04008GIF图9@@ @@09A04009GIF图10程序清单@@ *from 1995419to 1995518*include #define COMPRESSION 0 #define SIZEOFBITMAPFILEHEADER 14 #define SIZEOFBITMAPINFOHEADER 40 #define SIZEOFRGBQUAD 4 #define PIXELDATEOFFSET 14 40 4*16 *SIZEOFBITMAPFILEHEADER SIZEOFBITMAPINFOHEADER BITSPERPIXEL *NUMCOLOR* #define NUMCOLOR 16 #define NUMLINE 400 #define WIDTH 640 #define BITSPERPIXEL 4 #define PIXELPERBYTE 2 *8BITSPERPIXEL* #define BYTEPERLINE 320 *((WIDTH*BITSPERPIXEL1)32 1)*4 * #define NODOT WIDTH 1 #define EYESPACE 128 struct{ unsignde char color unsigned int prix unsigned int nxtx }dot[WIDTH] main() { struct tagBITMAPFILEHEADER{ unsigned char bfType1bfType2 * always equal toBM* unsigned long int bfSize *size of file * unsigned int bfReserved1bfReserved2 * set to zero * unsiged long int bfoffits *byte offset from BITMAPFILEHEADER to bitmap p ixel data in the file * }BITMAPFILEHEADER struct tagBITMAPINFOHEADER{ unsigned long int biSize* size of BITMAPINFOHEADER * biWidth* width in pixels biHeight* height in pixels * unsigned int biPlanes * always 1 * biBitCount * color bits per pixel must be 148 or 24 * unsigned long int biCompression *BIRGBBIRLE 8 or 4* biSizeImage *total bytes in image * biXPelsPerMeter* 0or opth res * biYPelsPerMeter* 0or opth res * biClrUsed * normally 0can set a lower no colors than biBitCount * biClrImportant * normally 0 * }BITMAPINFOHEADER struct tagRGBQUAD{ unsigned char rgbBlue * blue intensity0255 * rgbGreen * green intensity0255 * rgbRed * red intensity0255 * rgbReserved * reservedset to Zero * }RGBQUAD[NUMCOLOR] char *fnlayerlayerbmp char *fnorgoriginbmp char *fnresultresultbmp FILE *flayer*fOrigin *fResult unsigned char tmpbyte1tmpbyte2 unsigned int lineibyteipixelx unsigned int layer int leftxrightxtmpx unsigned long int curoffset unsigned char h[WIDTH]orgcolor[WIDTH] puts(WINTRICK) puts(by Li Jisong ) if( (fLayerfopen(fnlayerrb) )NULL) { fread(&BITMAPFILEHEADERSIZEOFBITMAPFILEHADER1fLayer) fread(&BITMAPINFOHEADERSIZEOFBITMAPINFOHEADER1fLayer) if( BITMAPFILEHEADERbfType1B && BITMAPFILEHEADERbfType2M && BITMAPINFOHEADERbiWidthWIDTH && BITMAPINFOHEADERbiHeightNUM LINE && BITMAPINFOHEADERbiBitCountBITSPERPIXEL && BITMAPINFOHEADERbiCompressionCOMPRESSION) fread(RGBQUADSIZEOFRGBQUADNUMCOLORfLayer) else{ fclose(fLayer) printf(File s is not fit for this program\nfnlayer) getch() exit(1) } } else{ printf(File s does not exist\nfnlayer) getch() exit(2) } if( (fOriginfopen(fnorgrb))NULL) { fread(& BITMAPFILEHEADERSIZEOFBITMAPFILEHEADER1fOrigin) fread(& BITMAPINFOHEADERSIZEOFBITMAPINFOHEADER1fOrigin) if( BITMAPFILEHEADERbfType1B && BITMAPFILEHEADERbfType2M && BITMAPINFOHEADERbiWidthWIDTH && BITMAPINFOHDADERbiHeightNUMLINE && BITMAPINFOHEADERbiBitCountBITSPERPIXEL && BITMAPINFOHEADERbiCompressionCOMPRESSION) fread(RGBQUADSIZEOFRGBQUADNUMCOLORfOrigin) else { fclose(fOrigin) printf(File s is not fit for this program\nfnorg) getch() exit(3) } } else { printf(File s does not exist\nfnorg) getch() exit(4) } if( (fResultfopen(fnresultwb))NULL){ fwrite(&BITMAPFILEHEADERSIZEOFBITMAPFILEHEADER1fResult) fwrite(& BITMAPINFOHIADERSIZEOFBITMAPINFOHEADER1fResult) fwrite(RGBQUADSIZEOFRGBQUADNUMCOLORfResult) } else { printf(File s open error\nfnresult) getch() exit(5) } for(line0line
    >(BITSPERPIXEL1)) orgcolor[x](unsigned char) (tmpbyte2<<(BITSPERPIXEL*ipixel)) ((unsigned char)0x80>>(BITSPERPIXEL1)) } }} for(x0x0)dot[x]prixxEYESPACE } for(layer1layer0)&&(rigntx参考文献 孙志辉王萃寒王茜实Windows 31详解北京电子工业出版社1994
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 积分 [ 获取积分 ]

    下载文档

    相关文档

    三维动画制作合同范本

    制 作 合 同合同编号: 甲方: 地址:电话:传真:乙方:XX文化传媒有限公司地址:电话:传真:甲乙双方本着平等自愿的原则协商一致的原则,经协商达成如下条款:一、工作内容及要求:(一)甲方委托...

    2年前   
    511    0

    浅谈应用计算机辅助数学教学

    浅谈应用计算机辅助数学教学  应用计算机辅助数学教学,二者若能有机地结合,会很好地发挥计算机媒体在数学教学中的“特有功能”。  随着计算机信息技术和网络科技的不断发展,计算机在学校教育教学中发...

    9年前   
    421    0

    企业应用计算机管理制度

    第一条随着科学技术的发展,对企业经营管理工作的要求也越来越高采,计算机对企业进行管理,是提高工作效率和管理水平、实现企业管理现代化的途径.在企业生产经营中推广应用计算机管理,对增加工厂经济效益将...

    3年前   
    401    0

    初中教师用计算机使用管理制度

    初中教师用计算机使用管理制度  一、计算机是教师了解教育信息、提高业务素质、提高工作效率的工具,计算机设备不得用于工作之外的用途,外来人员不得使用本单位的计算机。  二、为确保计算机的正常运转...

    9年前   
    396    0

    模具制作作业程序

    制定日期98-11-15主题程序书版次C等级修订日期20-01-19模具制作作业程序编号GC-P-002页数1 OF 31.目的﹕ 为确保本厂自制模具顺利进行﹐确保模具符合要求﹐特订出此程序...

    11年前   
    511    0

    樣品制作作業程序

    制定日期 98-11-15 主 題 程序書 版次 C 等級 修訂日期 20-01-19 樣品制作作業程序 編號 GC-P-003 頁數 1 OF 2 1.目的...

    13年前   
    7957    0

    樣品制作作業程序

    制定日期98-11-15主題程序書版次B等級修訂日期99-03-05樣品制作作業程序編號GC-P-003頁數1 OF 21.目的﹕ 為确保樣品規格能夠符合客戶要求﹐确保樣品順利完成﹐特定出此...

    9年前   
    548    0

    计算机程序设计和软件

    软 件总的来说,软件就是指用以指挥计算机运行活动所使用的程序。有两类软件:应用软件和系统软件。程序员设计和编制应用软件来完成面向用户的某些应用,诸如收帐和工资系统等。系统软件更为通用,通常是...

    12年前   
    565    0

    IT部+计算机管理程序

    IT部+计算机管理程序 IT部+计算机管理程序   修改日期:日期/版本批  准  初次发行:2010年10月01日版本:1.0第一次修订:    年   月    日版本:审  核 第二次修...

    10年前   
    515    0

    计算机专业程序员实习日记

    计算机专业程序员实习日记  XX-05-14 星期一  listctrl中lvitem lpara有很广泛的用处,我们可以通过这个参数实现list控件的排序功能,这里需要注意的是使用lvite...

    12年前   
    522    0

    制证系统局域网及制证用计算机情况自查报告

    制证系统局域网及制证用计算机情况自查报告 根据公安部关于印发《居民身份证制作中心(所)证件制作检查工作方案》的通知,我中心立即组织开展制证系统安全的检查工作,现将自查情况汇报如下 一、高度...

    11年前   
    9126    0

    样衣制作控制程序

    中山桑芭丝服装有限公司 程 序 文 件 样衣制作控制程序 编号:S-QP- 版本/修改状态:A/0 生效日期:2002年 月 日 页码:第1页,共3页 拟制: ...

    8年前   
    18979    0

    设计开发管制作业程序书

    1.目的: 管制及验证产品之设计,确保所设计之产品能符合规定要求,及加强产品设计开发期间相关部门之沟通,并留下设计过程之历史纪录,以供参考,追溯之用。 2.范围: 2.1 本公司设计开...

    5年前   
    782    0

    三维目标怎么写

    三维目标怎么写三维目标到底怎么写?“三维”指课堂教学目标的三大板块。既:“知识与技能”、“过程与方法”、“情感、态度、价值观”。一、 知识与技能就是学生该节课应该掌握的知识,应该培养的能力。技...

    12年前   
    571    0

    三维谈判法

    三维谈判法  ——对经理们来说,内部和外部的谈判成了一种生活方式。每当利益或观念相异,各方要互相依靠才有结果时,谈判的需求就出现了。谈判的本质是什么?是讨价还价?是建立关系?瓜分经济蛋糕?把蛋...

    10年前   
    665    0

    CNC常用计算公式

     CNC常用計算公式一、 三角函數計算1.tanθ=b/a2.Sinθ=b/cθ=tan-1b/aCos=a/c二、切削速度的計算Vc=(π*D*S)/1000Vc:線速度(m/min) π...

    2年前   
    1396    0

    电工常用计算口诀公式

    1、已知变压器容量,求其各电压等级侧额定电流 ?口诀 a :容量除以电压值,其商乘六除以十。 说明:适用于任何电压等级。在日常工作中,有些电工只涉及一两种电压等级的变压器额定电流的计算。将以上口...

    5年前   
    1130    0

    高中化学中常用计量

    化学中常用计量1.同位素相对原子质量以12C的一个原子质量的1/12作为标准,其他元素的一种同位素原子的质量和它相比较所得的数值为该同位素相对原子质量,单位是“一”,一般不写。2.元素相对原子...

    4年前   
    901    0

    2018年计算机程序员的实习单位评语

    计算机程序员的实习单位评语  xx同学实习期间勤奋认真,有很强的适应能力和创新意识,能够利用所学的知识迅速投入到实际的计算机应用程序编写当中,并能够结合自己的特点发挥优势弥补不足,在实习过程当...

    6年前   
    604    0

    2017年计算机程序员实习的单位意见

    计算机程序员实习的单位意见  该生在实习期间勤奋认真,有很强的适应能力和创新意识,能够利用所学的知识迅速投入到实际的计算机应用程序编写当中,并能够结合自己的特点发挥优势弥补不足,在实习过程当中...

    7年前   
    460    0