OPENGL绘制茶杯.docVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OPENGL绘制茶杯

VC++课程设计报告 题目:OPENGL绘制茶杯 设 计 人: 指导教师: 需求说明 问题描述: OPENGL绘制茶杯 要求: 任意茶杯模型 需求分析: 界面要求: 提供全屏和窗口两种显示模式,仅显示图形,界面简单。 功能要求: 提供基本的旋转操作,便于观察。 性能要求 显示平滑,操作响应及时。 异常处理要求 提供基本的出错信息。 将来可能提出的要求 建模,照明,材质的提高,提供缩放等功能 设计思想 建立windows应用程序框架。 模型的绘制。 灯光,材质,纹理的添加。 主要函数功能描述: unsigned char *LoadBitmapFile(char *filename,BITMAPINFOHEADER *bmih) void Initialize() void DrawCup() void Render() //为设备环境设置像素格式 void SetupPixelFormat(HDC hDC) //WINDOWS PROCEDURE事件处理器 LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) //WINDOWS应用程序入口 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) 调试和测试 最终显示效果如下: 用户手册 上下键绕x轴旋转。 翻页键绕y轴旋转。 左右键绕z轴旋转。 设计体会: 参考文献: 附录 #define BITMAP_ID 0x4D42 #include stdio.h #include stdlib.h #include windows.h #include gl/gl.h #include gl/glu.h #include gl/glaux.h #pragma comment(lib,opengl32.lib) #pragma comment(lib,glu32.lib) #pragma comment(lib,glaux.lib) HDC g_HDC;//全局设备环境 float anglex=300;//旋转角度 float angley=330; float anglez=180; BITMAPINFOHEADER bmih; unsigned char* bitmapData; unsigned int texture; bool fullScreen=false;//全屏控制参数 GLUquadricObj *g_Object = gluNewQuadric();//创建二次曲面对象 GLUquadricObj *g_Object2 = gluNewQuadric(); /**********************************************/ // /**********************************************/ unsigned char *LoadBitmapFile(char *filename,BITMAPINFOHEADER *bmih) { FILE *filePtr; BITMAPFILEHEADER bmfh; unsigned char *bitmapImage; int imageIdx=0; unsigned char tempRGB; filePtr =fopen(filename,rb); if(filePtr==NULL) return NULL; fread(bmfh,sizeof(BITMAPFILEHEADER),1,filePtr); if(bmfh.bfType!=BITMAP_ID) { fclose(filePtr); return NULL; } fread(bmih,sizeof(BITMAPINFOHEADER),1,filePtr); fseek(filePtr,bmfh.bfOffBits,SEEK_SET); bitmapImage=(unsigned char *)malloc(bmih-biSizeImage); if(!bitmapImage) { free(bitmapImage); fclose(filePtr); return NULL; } fread(bitmapImage,1,bmih-biSizeImage,filePtr

文档评论(0)

sd44055 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档