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