文档介绍:1 引言
OpenGL作为一种三维工具软件包,在交互式三维图形建模能力和编程方面具有无可比拟的优越性。OpenGL是SGI公司开发的,可独立?操作系统和硬件环境的三维图形库,已在各种工作站和高档微机中运行,由于其强大的图形功能和跨平台的能力,已成为事实上的图形标准,被人们广泛应用于科学可视化、实体造型、CAD/CAM、模拟仿真等诸多领域。
在医学应用中,人体骨骼的使用能使医生和病人之间有一个良好的沟通,使病人能知道自己的病情,能很好的配合医生进行有效的治疗;在实践教学中,通过对人体骨骼的展示,教师能很好的讲解各个骨骼关节之间的运动关系,从而使学生对骨骼和骨骼关节之间的运动关系有更深刻的理解。
课题来源于徐州翰林高科技公司,该公司主要从事医学图像处理软件研究与开发。课题“人体三维骨骼运动仿真研究”的目的是利用三维仿真技术,利用骨骼模型进行编程和控制展示人体骨骼及运动,主要包括三维建模技术及实现,人体运动方式设计等.
课题是以visual C++和OpenGL为编程环境来仿真人体骨骼运动,通过对人体主要骨骼和骨骼之间的运动关系来展示人体的奇妙之处。
2 需求分析
功能需求分析
本设计是根据徐州翰林软件公司的要求,整理出人体骨骼的运动过程,并对该过程进行了细心的分析得出了如下的需求分析。
通过对徐州翰林软件公司的要求分析,得出系统应具有的功能如下:
全景视图
1) 点头:当用户想了解点头的具体细节时,通过键盘或鼠标操作能使骨骼做点头动作。
2) 摇头:当用户想了解摇头运动的具体细节时,通过键盘或鼠标操作使骨骼做摇头运动。
3) 抬左臂:当用户想了解左臂运动的具体细节时,通过键盘或鼠标操作使骨骼做抬左臂运动。
4) 抬左肘:当用户想了解左肘运动的具体细节时,通过键盘或鼠标操作使骨骼做抬左肘运动。
5) 抬右臂:当用户想了解右臂的具体细节时,通过键盘或鼠标操作使骨骼做抬右臂运动。
6) 抬右肘:当用户想了解右肘运动的具体细节时,通过键盘或鼠标操作使骨骼做抬右肘运动。
7) 抬左大腿:当用户想了解左大腿运动的具体细节时,通过键盘或鼠标操作使骨骼做抬左大腿运动。
8) 抬左小腿:当用户想了解左小腿运动的具体细节时,通过键盘或鼠标操作使骨骼做抬左小腿运动。
9) 抬右大腿:当用户想了解右大腿运动的具体细节时,通过键盘或鼠标操作使骨骼做抬右大腿运动。
10) 抬右小腿:当用户想了解右小腿运动的具体细节时,通过键盘或鼠标操作使骨骼做抬右小腿运动。
11) 旋转:当用户想了解旋转的具体细节时,通过键盘或鼠标操作使整个骨骼做旋转运动。
12) 走步:当用户想了解走步的具体细节时,通过键盘操作使骨骼进行走步运动。
13) 放大:当用户想了解放大的具体细节时,通过鼠标操作来放大骨骼。
侧顶视图
1) 点头:当用户想了解点头运动的具体细节时,通过键盘或鼠标操作能使骨骼做点头动作。
2) 摇头:当用户想了解摇头运动的具体细节时,通过键盘或鼠标操作使骨骼做摇头运动。
3) 抬左臂:当用户想了解左臂运动的具体细节时,通过键盘或鼠标操作使骨骼做抬左臂运动。
4) 抬左肘:当用户想了解左肘运动的具体细节时,通过键盘或鼠标操作使骨骼做抬左肘运动。
5) 抬右臂:当用户想了解右臂运动的具体细节时,通过键盘或鼠标操作使骨骼做抬右臂运动。
6) 抬右肘:当用户想了解右肘运动的具体细节时,通过键盘或鼠标操作使骨骼做抬右肘运动。
7) 抬左大腿:当用户想了解左大腿运动的具体细节时,通过键盘或鼠标操作使骨骼做抬左大腿运动。
8) 抬左小腿:当用户想了解左小腿运动的具体细节时,通过键盘或鼠标操作使骨骼做抬左小腿运动。
9) 抬右大腿:当用户想了解右大腿运动的具体细节时,通过键盘或鼠标操作使骨骼做抬右大腿运动。
10) 抬右小腿:当用户想了解右小腿运动的具体细节时,通过键盘或鼠标操作使骨骼做抬右小腿运动。
11) 旋转:当用户想了解旋转的具体细节时,通过键盘或鼠标操作使整个骨骼做旋转运动。
性能需求分析
正确性:根据人体骨骼系统的运动设计软件,运动中的每一个操作在系统中都必须有所体现,保证程序的正确性。
3 概要设计
模型格式选择
保存三维图形数据的方法多种多样,有参数曲线法、CSG描述法等等,但常用的保存三维模型的方法是多边形逼近法,即用许多小多边形拼出模型的外观,文件中保存这些多边形的信息。由于OpenGL中提供了最基本的由多边形构造三维模型的方法,因此从三维图形数据文件中读取模型数据并在OpenGL中绘制就很容易。
3ds模型数据格式和obj模型数据格式都是三维图形数据格式,3ds模型数据格式是目前大多数图形数据素材库中保存三维图形数据的最常用格式