ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:52.18KB ,
资源ID:2872912      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2872912.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机图形学opengl动画的实现源代码.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机图形学opengl动画的实现源代码.docx

1、计算机图形学opengl动画的实现源代码清华大学 理学院 数学系实验报告基于opengl的简单动画的实现小组成员姓名学号班级姓名学号班级指导教师成绩 2012年5 月2日实验目的:在VC6.0的opengl的环境下,实现固定物体的连续变化,从而使简单动画得以实现。实验思想:由于是简单图形的变化过程,所以问题关键在于:1、物体的位置变化如何实现,而位置变化在opengl中体现在坐标的变化中,因而设置坐标的每一步物体的位置变化情况是该问题的关键,此关键代码如下:wAngleX += 1.0f; wAngleY += 10.0f; wAngleZ += 5.0f;2、再有就是如何使得连续的变化得以实

2、现,这就实现了手动变化相自动变化的转变,为了实现这一问题,我们想到设置一个变化时间,使得物体在每个时间段变换一次位置,当这个时间适当小时,就实现了物体的连续变化;这就需要引进一个计时器,通过设置间隔时间实现物体的连续变化,此关键代码如下: SetTimer(1, 150, NULL);实验步骤:1、 初始化OpenGL。2、 设置菜单与关联函数初始化,设置视口与窗口匹配,重新设置坐标系统。3、 建立正交变换下的剪切体(即变换物体)。4、 编写变换幅度函数,设置没不变换情况。5、 编写连续变换计时器,使得在一定间隔下连续变换。实验关键代码:/ AnimateView.cpp : implemen

3、tation of the CAnimateView class/#include stdafx.h#include Animate.h#include AnimateDoc.h#include AnimateView.h/add down#include glgl.h#include glglu.h#include glglaux.h/add up/add down#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAnimateViewIMPLEMENT_DYNC

4、REATE(CAnimateView, CView)BEGIN_MESSAGE_MAP(CAnimateView, CView) /AFX_MSG_MAP(CAnimateView) ON_WM_CREATE() ON_WM_DESTROY() ON_WM_ERASEBKGND() ON_WM_SIZE() ON_COMMAND(ID_FILE_PLAY, OnFilePlay) ON_UPDATE_COMMAND_UI(ID_FILE_PLAY, OnUpdateFilePlay) ON_WM_TIMER() /AFX_MSG_MAP / Standard printing commands

5、 ON_COMMAND(ID_FILE_PRINT, CView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView:OnFilePrintPreview)END_MESSAGE_MAP()/ CAnimateView construction/destructionCAnimateView:CAnimateView() /add down m_pDC = NULL; m_play = FALSE; /add upCAnimateView

6、:CAnimateView()BOOL CAnimateView:PreCreateWindow(CREATESTRUCT& cs) / TODO: Modify the Window class or styles here by modifying / the CREATESTRUCT cs /add down cs.style |= WS_CLIPSIBLINGS | WS_CLIPCHILDREN; /add up return CView:PreCreateWindow(cs);/ CAnimateView drawingvoid CAnimateView:OnDraw(CDC* p

7、DC) CAnimateDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); / TODO: add draw code for native data here /add down DrawScene(); /add up/ CAnimateView printingBOOL CAnimateView:OnPreparePrinting(CPrintInfo* pInfo) / default preparation return DoPreparePrinting(pInfo);void CAnimateView:OnBeginPrinting(CD

8、C* /*pDC*/, CPrintInfo* /*pInfo*/) / TODO: add extra initialization before printingvoid CAnimateView:OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) / TODO: add cleanup after printing/ CAnimateView diagnostics#ifdef _DEBUGvoid CAnimateView:AssertValid() const CView:AssertValid();void CAnimateView

9、:Dump(CDumpContext& dc) const CView:Dump(dc);CAnimateDoc* CAnimateView:GetDocument() / non-debug version is inline ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CAnimateDoc); return (CAnimateDoc*)m_pDocument;#endif /_DEBUG/ CAnimateView message handlersint CAnimateView:OnCreate(LPCREATESTRUCT lpCreateSt

10、ruct) if (CView:OnCreate(lpCreateStruct) = -1) return -1; /add down Init(); /初始化OpenGL /add up return 0;void CAnimateView:OnDestroy() /add down HGLRC hrc; /撤消时间步 KillTimer(1); hrc = :wglGetCurrentContext(); :wglMakeCurrent(NULL, NULL); if (hrc) :wglDeleteContext(hrc); if (m_pDC) delete m_pDC; /add u

11、p CView:OnDestroy();BOOL CAnimateView:OnEraseBkgnd(CDC* pDC) return TRUE;void CAnimateView:OnSize(UINT nType, int cx, int cy) CView:OnSize(nType, cx, cy); /add down int w=cx; int h=cy; /避免除数为0 if(h=0) h=1; /设置视口与窗口匹配 glViewport(0, 0, (GLsizei) w, (GLsizei) h); /重新设置坐标系统 glMatrixMode(GL_PROJECTION); glLoadIdentity(); /根据窗口大小设置调整正射投影矩阵 if (cx GetSafeHdc(); :DescribePixelFormat(m_pDC-GetSafeHdc(), n, sizeof(pfd), &pfd); hrc = wglCreateContext(m_pDC-GetSafeHdc(); wglMakeCurrent(m_pDC-GetSafeHdc(), hr

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1