基于 OpenGL的三维模型交互控制研究.pdf

基于 OpenGL的三维模型交互控制研究.pdf

ID:52969437

大小:240.90 KB

页数:4页

时间:2020-04-05

基于 OpenGL的三维模型交互控制研究.pdf_第1页
基于 OpenGL的三维模型交互控制研究.pdf_第2页
基于 OpenGL的三维模型交互控制研究.pdf_第3页
基于 OpenGL的三维模型交互控制研究.pdf_第4页
资源描述:

《基于 OpenGL的三维模型交互控制研究.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、2015年1月机械设计与制造工程Jan.2015第44卷第1期MachineDesignandManufacturingEngineeringVo1.44No.1DOI:10.3969/j.issn.2095—509X.2015.01.004基于OpenGL的三维模型交互控制研究叶帅,游有鹏,邢永彦(南京航空航天大学机电学院,江苏南京210016)摘要:OpenGL是图形硬件的一种软件接口,在深入了解OpenGL显示机制的基础上,讨论了基于OpenGL实现三维模型的交互显示变换方法。应用OpenGL接口,通过对鼠标的二维位置的变

2、换,得到世界坐标系中三维旋转轴和旋转角度,以及鼠标在世界坐标系中的三维位置,进而对三维模型进行平移、缩放、旋转操作。算法经实际编程应用,证明能够有效地实现三维模型的各种交互控制功能。关键词:三维模型;鼠标控制;OpenGL;交互式中图分类号:TP391.72;TH16文献标识码:A文章编号:2095—509X(2015)01—0015—04目前,相当多的优秀三维图形工具展现了精彩轴正方向的坐标系。OpenGL会将世界坐标系先变的虚拟现实场景⋯。随着虚拟现实进入工程应换为视坐标系,然后进行裁剪,只有在视景体内的用,要求相关的图形应

3、用软件能够使用户与虚拟现场景才会进行下一个阶段的处理。实场景进行互动操作。为此,当进行图形应用软件交互控制设计时,必须考虑三维模型的平移、缩放2实现方法和步骤和旋转等操作的实现,其中最为困难的是旋转操2.1显示变换分析作。常用的方法是使用OpenGL提供的接口函数在计算机图形学中,三维图形的旋转变换需要glRotate()来实现三维旋转操作』、采用四元数法指定一个旋转轴和旋转角度。通常,三维旋转变换求旋转变换矩阵、构造旋转矩阵对模型进行变可围绕空间任意直线轴进行,并规定图形绕某轴逆换,它们可以很好地实现三维模型的旋转,但会时针方

4、向的旋转角度为正。旋转变换前后三维图改变对象的坐标,并且计算量大。对于有坐标值要形的大小和形状不发生变化,只是空间位置发生了求的三维实体,这些方法并不适用。针对以上问变化。绕坐标轴旋转是最简单的旋转变换。当三题,本文提出了一种利用鼠标移动改变视点坐标系维图形绕某一坐标轴旋转时,图形上各点关于此轴位置、保留原有三维模型的空间几何信息、实现三的坐标值不变,而另两个坐标轴的坐标值相当于在维模型交互控制的方法。它们组成的坐标面上的一个二维旋转变换,然后再投影到二维的屏幕上。当通过鼠标操作三维场景1坐标系分类中某个物体的投影进行旋转时,可

5、以将鼠标位置的OpenGL中存在如下几种坐标系:改变转换成三维物体绕着空问某一垂直于投影方a.世界坐标系。世界坐标系是以屏幕中心为向轴的旋转。原点(0,0,0),在OpenGL中用来描述场景的坐基于以上分析,可对三维物体旋转问题作如下标,是系统的绝对坐标系。在绘图期间,原点和坐转化:鼠标在二维屏幕上的移动等价于三维物体绕标轴保持不变。空间某一条轴的旋转,该旋转轴可定义为平行于屏b.模型坐标系。绘制模型时使用的坐标系。幕、垂直于鼠标移动方向且通过原点,旋转的角度当模型发生旋转、平移等变化时,模型坐标系本身由鼠标的移动距离来确定。三

6、维物体的缩放,可通不会变化,变化的是模型在世界坐标系中的位置。过改变视点里三维模型的距离来实现,缩放比例由c.视坐标系。以视点为原点,以视线方向为z鼠标沿轴移动的距离确定。这些变换都使用到同收稿日期:2014一l1—21作者简介:叶帅(】99l一),男,江苏宿迂人,南京航空航天大学硕士研究生,主要研究方向为机电控制及自动化。·15·2015年第44卷机械设计与制造工程一函数gluLookAt()。对于三维物体平移问题,可直心的参考点以及向量来构造一个视变换矩阵。接调用glTranslate()函数,参数由鼠标在窗口中这个矩阵将视

7、点映射成为原点,并指向z轴负方的移动量确定。向。当使用一个特定的投影矩阵时,场景的中心就2.2实现步骤映射到视口的中心。类似地,由向量y描述的方在实际应用中,用户在完成场景建模后,往往向投影到投影平面成为+y轴,这样它在视口中的需要选择一个合适的视角或者不停地变换视角,以指向向上。向量。不可与从视点到参考点的直对场景作观察,实用库函数gluLookAt()就提供了线平行。这样的功能,函数声明如下:各参数通过以下公式计算:VoidgluLookAt(GLdoubleeyex,GLdoubleeyey,vPN:target—eyeG

8、Ldoubleeyez,GLdoublecenterx,GLdoublecentery,VPN”GLdoublecenterz,GLdoubleupx,GLdoubleupy,GL—doubleupz);:。印llfI该函数定义一个视图矩阵,并与当前矩阵相n×V

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。