图形学樱花飞舞.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图形学樱花飞舞

操作指导6贴图-樱花飞舞 建立工程 添加函数和变量 public: void mir();//定义镜面显示函数 void un2();//定义花瓣 void bmptomap();//定义纹理映射方式 void mysky();//定义背景贴图 FILE * myf;//定义一个贴图文件 GLubyte image1[512][512][3];定义读取贴图的变量 BOOL lkey;//定义动画开关 int si;//定义落花瓣的数目 float psnow[60][6];//定义60片花瓣的位置、角度 CClientDC *my_pDC; CRect my_oldRect; BOOL mytbar; BOOL mysbar; 添加消息响应函数OnTimer()。 初始化变量 CCmyView::CCmyView() { // TODO: add construction code here my_pDC=NULL; mytbar=FALSE; mysbar=FALSE; lkey=TRUE; for(int i=0;i60;i++){ psnow[i][1]=1.0f*(rand()-rand())/RAND_MAX; psnow[i][2]=1.0f*(rand()-rand())/RAND_MAX; psnow[i][0]=1.0f*(-rand())/RAND_MAX; psnow[i][3]=90.0f*(rand()-rand())/RAND_MAX; psnow[i][4]=90.0f*(rand()-rand())/RAND_MAX; psnow[i][5]=90.0f*(rand()-rand())/RAND_MAX; }; si=-59; //打开文件j。bmp,从位图的第54个字节开始是图像信息,将色彩传给imagel //位图要求为23位521*512。 if(!(myf=fopen(j.bmp,rb))){return;}else{ fseek(myf,54,SEEK_SET); fread(image1,sizeof(unsigned char),512*512*3,myf);}; } 建工具栏 ID_BUTTONyh 并添加响应函数: void CCmyView::OnButtonyh() { // TODO: Add your command handler code here if(lkey){ SetTimer(1, 120, NULL); }else{ KillTimer(1); }; lkey=!lkey; Invalidate(FALSE); } 加上 // cmyView.cpp : implementation of the CCmyView class // #include stdafx.h #include cmy.h #include MainFrm.h #include Math.h #include cmyDoc.h #include cmyView.h #define ABS(x) ((x)0 ? -(x) : (x)0 ? (x) : 0) #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif 在OnDraw()中改背景glClearColor(0.2f,0.2f,0.2f,0.9f); 在OnCreat()中建立花瓣的显示列表语句 int CCmyView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here myfirst(); glNewList(1,GL_COMPILE); un2(); glEndList(); return 0; } 九、void CCmyView::OnDestroy() { CView::OnDestroy(); // TODO: Add your message handler code here KillTimer(1); HGLRC hrc; hrc = ::wglGetCurrentContext(); ::wglMakeCurrent(NULL, NULL); if (hrc)

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档