计算机科学 2008V o1.35No.11

基 于 Q t 和 O p en Inven tor 跨 平 台虚 拟 油 泥造 型 系统 构 建 方 法 的研 究 与 实 现 闰锋欣 侯增选 张定华 孙 蓓 (西北工业大学现代设计与集成制造技术教育部重点实验 室 西安 710072)

摘 要 采 用传统开发流程的应用软件 系统一般 无法跨平 台运行 于 U nix/,M ac O S 或 M S W indow s 操作 系统 。 在研 究软件 的跨平 台技术基础上 ,结合 Q t应 用程序框架和 O pen Inventor 图形软件 包的特 点 ,提 出一种新的构建跨 平 台 图形 应 用软 件 系统 的 通 用技 术 方 案 ,并 给 出 了 ed H at E n terp rise L inu x 4 和 M SW in do w s 系统 下 的 实现 方 法 。 通 过描述虚拟 油泥造型 系统的构建机理 ,表 明该 方法可 以满足 一般跨 平 台软件 的开发 需求。最后 着重给 出基 于 K — velop 集成开发环境的 V M S 开发流程 ,验证 了方法的有效性和意义。 关键词 Q t,O pen Inventor,跨平 台,虚拟 油泥造型 系统 ,通 用性 开发 方法

R e sea rch a n d Im p lem e n ta tio n o n B u ild in g C ro ss-p la tfo rm V irtu a l C la y M od elin g System B ased on Q t and O p en Inven tor

Y A N F en g-xin H O U Z en g-xu an Z H A N G D in g-h u a S U N B e i (K ey Laboratory of M odern D esign & Integ rated M anufacturing ,N orthw estern P olytechnical U niversity ,X i’an 710072 ,C hina )

A bstract A s a ru le 。th e G U I (G raph ical U ser Interface) app lica tion s develop ed w ith trad itio n al m eth od s can no t seam — lessly run on m u lti-platform s ,su ch as U n ix/L in ux ,M ac O S o r M icro so ft W in dow s.A n ew m e th o d o f bu ild in g cro ss— p latfo rlTl G U I ap p licatio ns w as in tro du ced by stu d yin g th e cro ss-platform techn iq u es and usin g th ese com p reh en sive o b— iect-o riented C + + fram ew ork s,Q t fram ew ork an d O p en In ven tor to olk it.In o rd er to describe th eir m echan ism s in d e— tail。so m e im p ortan t im p lem entation pro cesses in R ed H at L in ux E nterprise 4 an d M ic rosoft W in do w s X P w ere also p resen ted .A n d ,th e h ierarch ical m o del used in V C M S (virtu al cla y m od elin g sy stem ) in d icated th at this m eth od cou ld m eet th e req uirem ents of g eneral cro ss-p latfo rm ap plicatio ns.A t last,th e d etails o f V C M S d evelop m ent process b ased K D evelop co nsequ ently ap p ro ved th e valid ity an d sig n ifican ce o f th is m eth od . K eyw ords Q t,O p en Inv en to r,C ro ss-pla tfo tin ,V irtu al clay m od eling system ,U n iversal dev elop m en t m eth o d

随着计算机软件产业 的飞速 发展 ,人 们 已经 开发 了大 量 字 的国际化 图形 用户界 面(G U I) ;R B runE 5_等基 于 Q t完 成 的应用软件 ,但存 在总量丰富而重用率低下 的矛盾 。因此 ,为 了跨平 台的交互式应用软件系统 。O pen Inventor 是从 O pen— 了能够有效地满足面 向多平 台的复杂应用对不同用户多样服 G L 派生 出来的可独立 于 系统平 台 的软件 包 ,既可 有效利 用 务 的需求 ,将不 同系统平 台下广域分布 的异构 、自治资源进 行 系统的硬件资源 ,又能简化 程序开发 的代 码量 ,其扩展库 (如 按需组织和管理 ,以实 现动态 、协同地提高资源综 合利 用率 和 SoW in 等 )为用户提供了便捷 的 G U I A P I,大大提高 了三维场 资源共享率 ,这已成为一个 重要 的科学 问题 _1]。 景的构 建效 率和管理效果 。 近年来 ,L inux 以其 自由开 放性 和稳 定性 逐渐获 得 了程 本 文 将通 过研 究 分析 跨 平 台技 术 ,结 合 L inux,Q t 和 序 开发人员 的青睐 ,但 其单调 的命令执 行程序开 发环境极 大 O pen Inventor 程序设计特点 ,采用 V C 和 K D evelop c /c + + 程度上 阻碍 了大 型程 序的规模 化发展 。与 之相对应 的是 ,近 集 成开发环境 (ID E ),从跨平台应用程 序开发 的角度 ,讨论 基 年来基 于 W indow s平 台的开发环境则经历 了跨 越式的发展 , 于跨平 台技 术有效构建 三维 图形应用 系统 的关键技术 。第 1 完成 了从单语言 、单环境到 交叉开发 、系统 集成 的过 渡 ,用 户 节概述跨平 台技术 ;第 2 节分析软件跨平台所需 的主要技 术 , 的代码量呈现几何级 数增加 。因此 ,在充分 利用 L inux 程 序 结合虚拟油 泥造 型 系统 V CM S (V irtual C lay M odeling Sys— 源码开放 和 自由使用 的基础上 ,增加 其开发环境 的易用性 和 tern )_6],给出其 跨平 台 实现 的技术 途径 ;第 3 节 给出 V C M S 应用 软件 的跨平 台特性将 可能有效解决上述 问题 。 的构建过程和程 序实现流程;第 4 节给 出 V C M S 在不 同平 台 Q t应用程序框架 _2]和 O pen Inventor 工具包 _3]均具 有 良 的运行效果 ;最后是分析结论 。 好 的跨平 台特性 ,在源代码 级可以做 到“一次编码 ,随处编译” 1 跨平 台技术 的跨平 台效果 。从跨平 台技术角度讲 ,Q t 框架为用户 提供 了 诸 如应用进 程管理 、对话框 、多线 程等 的全 面解决方 案 ,如 刘 对于一个应用程 序,所谓 的跨平 台是指其 能够独立运 行 汇丹等[4]利用 Q t开发 了可以显 示蒙 、维 等多 种少数 民族 文 于不同 的操 作 系统平 台 ,如 W indow s,U nix/L inux 以及 M ac

* )本文研究得到国家“863”计划项 目(2[)O6从 04Z 111 ),国家 自然科学基金项 目(5047514 5,50 775185 ),西安 市科技计划 项 目(G G 060 27)资助 。 闰锋欣 助教 ,博士研究生 ,主要研究方 向为计算机辅助技术 、虚拟产品开发;侯增选 副教授 ,德国柏林工业大学博士 ,主要研究方 向为虚拟现 实技术 、五坐标数控加工仿 真等 ;张定华 博士 ,教授 ,博士生导师 ,主要研 究方 向为快速反应制造、工业 C T 与检测 、体视化技术 等 ;孙 蓓 硕 士研究生 ,主要研究方向为虚拟交互技术 。

· 2 4 4 · O S ,从 而有效提 高软件 的重用 性。但 由于应用 程序在运行 中 用程序类管理 系统 的消 息响应 ;在 三维图形 的显示 和操作管 需要 综合 利用 空问 、图形 、数 据库等多项技 术 ,且 C P U 调用指 理方面 ,则 通过便捷 的 O pen Inventor A PI 工具包来完成 。 令的解释在不同平 台之 间也 存在差 异 ,所 以很难 获得完 全能 从系统级 来看 ,v C M S 采用 的 V iew K it 和 O pen Invent— 够独立运行 于不同系统平 台的应用 程序 。但 是 ,我们 可 以从 or,都是 由许多面 向对象 的 C + + 类 构成 的软件工具包 ,而且 技术 层面获得 相应 的跨平 台技术 实现 。 后者是基于 O penG L 开 发而成 的 A PI,具 有天生 的跨平 台特 1.1 操作 系统级的跨平台技术 性 ,因而 由它们完成 的系统 图形显示 和人机 交互功 能在源代 分层设计 的思想可 以在操作 系统级上 实现跨平 台。事 实 码级都具有跨平台能力 。因此 ,需 要尽 量减少对 基于 X ll 库 上,分层设计思想是网络和计算机系统的一个主要特点 ,这 种 完成系统底层交互功能 的代码量 。V CM S 开发初 期 ,由于系 方法使层 与层之 间相互独立 ,并按照特定的接 口进行通信 j。 统开发体系采用人工管理 方式 ,造成 系统原 型缺乏版本 控制 例如 ,CP U 指令集构 成 了操 作 系统和 硬件之 间 的接 口,系统 能力 ,因而适 当的集成开 发环境 也是跨 平 台开 发中需要 考虑 调用则构成 了应用程序和操作 系统之 间的接 口。虚拟机技术 重要 因素之一 。 是操作 系统级跨平 台技 术 的典 型代表之 一 ,它通过 新增 的虚 2.3 V C M S 跨平 台技术 的选择 拟 中间层截获上层软件对 底层接 口的调 用 ,并且对该 调用重 针对 V C M S 自身 的特 点和对 跨平 台技 术的要 求 ,以“多 新做 出新 的解释和处理 ,以实现异构环境 中资源的可共享 、可 平台源码 一致”为原则 ,对各层次跨平台技术的选择如下 。 管理和可协 同,做 到“一 次编译 ,到处 运行”,实现 目标 代码级 (1)针对操作系统 :不采用依赖运行环境 的 ,选择 C/ 和源代码级的平 台无关性 。 C + + ,实现多平 台共用同一套代 码 ,做到“一次编 写 ,多 次编 1.2 G U I 的跨平 台技术 译运行 ”。其优点是性能 可靠 ,与不 同平 台的集成性 高 ,便 于 G U I无法直接跨平 台,是 应用 系统无法 实现跨平 台 的主 系统 控制 。 要原 因之一 ,因为 各种操作 系统是通过 不同 的 A P I 调用 函数 (2)针 对 图形 相 关 模 块 :图形 的显 示 和 控 制 选 用 基 于 来生成应用程序各 自图形界 面的。例如 ,W indow s 平 台 中运 O penG L 的 O pen Inventor 图形软件包 ;G U I部 分选择跨平 台 行的应用程序 ,其 G U I通 常由 M F C 或者 W indow s A P I构建 的 Q t应用程序框架 ,并 负责 V C M S 系统 的程序管 理 、事 件响 而成 ,显然无法运 行在 U nix/I inux 下 以 X 11 库 为基础 的 x _ 应等 。 W indow 系统 ;反之亦然 。因此 ,要使 G U I具 有跨 平 台能力 , (3)针对集成 开发 环境 :W indow s 下选 择 V C ,便 于实 现 则必须通过具 有跨 平 台能 力的 c /c + + 等 高级语言 ,利用它 系统 管理 和协 同开发 ;U nix/L inux 下选 择 K D evelop。两者对 们的平台无关性来模拟不 同平 台中 G U I 的界面模式 ,以构建 于源代码 文件的管理方式相似 ,易于实现代码 同步 。 具有跨平台能力的 G U I。这也是 Q t应 用程序 框架等跨 平 台 2.4 图形用户界面 :Q t 软件包实现跨 平台的主要机制之一 。 Q t使 用“一次编 写 ,随处 编译 ”的方式 为 开发 G U I 的用 1.3 其他跨平 台技术 户提供 了一个 完整的 C + + 应用程 序框架 ,并 以其卓 越 的兼 组件技术 、中间件 (M iddlew are)技术 等也 是常用 的跨平 容性 、高效 的 C + + 性能和丰富的 A P I 而成为 U nix/L inux 平 台实现技 术_8]。对 于 组件 技 术 ,常 用 的组 件 规 范 有 C O M , 台中 G U I开 发的事实标 准 。程 序开发人 员使用 Q t的单一源 CO R B A 和 JavaBean ,其实现 规范主 要 由微软 ,O M G 和 SU N 程序 可以构建 出能 够独 立 运行 于 从 W indow s 98 到 X P ,从 公 司完成 ,分别用 以完成特定功能的 、符合 二进 制标 准的软件 M ac O S X ,Solaris,H p-U X 到 L innx 以及其 它基于 X 11 库 的 模块 。中间件是位 于操 作系 统和应用 程序之 间 的软件 ,不 同 U nix/Linux 上的应用程序 。Q t 的双重授权 机制l_2]及其 丰 富 中间件的通信则 由通信 中间件来完 成 ,从 而形成 跨平 台间 的 的产 品线 ,为各行业的开发人员提供了极大便利 :非商业用户 通信 ,如数据库访问中间件 、网络 中间件等 。 可 以基 于 Q P L 和 G P L 开发 自由软 件 ,商业 用户 则可 以通过 购买 的 Q t商业 许可证开发商用软件 。 2 跨 平 台软件 实现 的技 术途径 Q t设计 器(Q t D esigner)可用于开发 更为复 杂的 G U I窗 由于移植性 、稳定性和 硬件兼 容性是衡 量跨 平台软 件实 体 。Q t设计 器 4.3.2 在 W indow s 系统 中 的运 行界 面如 图 1 现技术 的重要指标 ,而硬件平台的升级 、维 护等状 态则影响着 所示 :用户可以方便地从左侧的工具箱中选择适当的控件 ,将 软件 的持续稳定运行 ,所 以屏蔽硬 件资源 的动态 变化对 软件 其放置 在 窗 口中 的 大 致 位 置 ,然 后 通 过 设 计 器 中提 供 的 的影 响就成 为保 证软 件运 行稳 定可 靠 的重要 问题 。下 面 以 Q I ayout等完善对 齐方 式完成界面的最终布局。设 计器能够 V C M S 为例 ,对软件 的跨平 台实现过 程做简单讨论 。 大大减少手工编程 的代码量 ,显著提高程序开发的效率。 2 .1 V C M S 概 述 V C M S 是西北工业 大学 和柏 林 工业 大学 联合 研 制 的汽 车车型创新设计系统 。该系统基于压缩体素模 型表示汽 车的 虚拟油泥模型 ,在计算 机生成的虚拟环境 中,设计人员利 用虚 拟油泥造型工具 (虚拟的刮刀 、刮 片和模板等 ),通过对 虚拟油 泥模型进行刮削 、填补 、刮 补等操 作完成 汽车外形 建模 ,克 服 了传统车身设计软件对设 计师创 造能力 的限制 ,为解 决计算 机辅助工业设计 中存在 的问题提供 了有效途径 。 2.2 解 决 VC M S 跨平台的主要问题 在计算机 内部采 用压缩 体 素模 型的 V C M S 对 于 系统稳 定性有着苛刻的要求 ,因而我们 在开发中 ,硬件平 台采用 高性 图 1 运行于 W indow s 系统 的 Q t 设计器 能的 SG I 图 形 工 作 站 ;系 统 主体 开 发 语 言 采 用 A N SI c / C + + ,并基 于 X-W indow 的 X ll 库 实现硬 件系 统的底 层工 2.5 三维场 景的显示和管理 :O pen Inventor 作 ;图形 用户 界面采用 V iew K it 语言 _9],并 通过 V kA pp 等应 O pen Inventor是 目前 世界 上应 用 最为 广泛 的面 向对象

· 2 4 5 · 和交互式的三维图形软件开发包 。它基于 O penG L 图形库开 观察 项 目的组织结构 和源代码 的存放形式 ,在工 作区 中部编 发而成 ,具有较 好 的硬件兼 容性 和较 强 的跨 平 台能力 。SG I 辑打开文件 的源代码 ;右侧 给出了 Q M ake 管理器 等工具 ,可 在其 U N IX 操 作 系统下 对 O pen Inventor进 行 了原 型开发 , 以完成工程联编时所需 的配置工作 ;下侧是信息观察区 ,可 以 M ercury 和 SIM 公 司则将 其 扩展 到 W indow s 和其 他 U nix/ 观察 工程 的编译 、连接情况 ,也可 以在终端模拟器中直接执行 L inux 平台 。因此 ,O pen Inventor 既有 O penG L 的平 台无关 终端命令 。此外 ,基 于 D oxygen 文 档生 成 系统 ,K D evelop 可 性 ,又为用 户 提 供 了 功能 更 为 强 大 、代 码 更 为 简 练 的 图 形 以为工程输 出包括 H T M L ,latex,R T F ,ps 以及 m anpage 等 A P I。图 2 给 出了 目前 用 于 W indow s 和 L inux 的 O pen In— 格式的项 目文档。 ventor 组成结构 。图 3 给出的是 M ercury 公司 O pen Inventor 3 跨平 台 V C M S 的 实现流 程 的扩展模块 。 3.1 Q t与 O pen Inventor 的结合 设计 O pen Inventor的初衷 之一就 是要兼 具 O penG L 的 可移植性 和窗 口系统无关性 。如 同 O penG L 自身使用了大量 SoW in l Open |nventor l SoXt 的与平 台无关 的类 和少量 的与窗 口系统相 关的类那样 ,O pen

W in32 控件 I l M otifX t Inventor也提供 了少部分 与窗 口系统 相关 的类 :SoX t类适 用 于 U nix/L inux 环境 ,SOW in 适 用 于 W indow s 环 境 ,而 SoQ t W in32 A PI l O penG L A PI } X lib A PI 则针对 Q t环境 。由于 SoQ t类 是 O pen Inventor 图形渲 染核

图 2 O pen Inven tor for W in/X t 的组成结构 心库 和 Q t库的结合 ,所 以 由其 构建 的源 代码 可 以无 缝运 行 于多个操 作系统平 台。图 5 给 出了两者的结合示意图 。

图 3 M ercury O p en In ventor 的扩展模块 图 5 Q t 和 O pen Inv entor 的结合

2.6 集 成 开 发 环 境 :K D evelop 在应用程序中 ,使用 Q t和 O pen Inventor 的步骤可 以表 功能完善的跨平 台集成开发 环境 ,目前 尚没有 理想 的选 示如下 : 择 。在 W indow s 系统 中 ,一般选择 V C 或 C 十+ B uilder作为 vo id m ain (int argc,char * argvE] ) { //使用 SoQ t::in it()初始化 O pen Inven tor 标准 1D E ,它们均 可 以提 供强 大 的项 目管理 功能 。在 U nix/ Q W idget m yW indow — SoQ t::init(argvE0] )。 L inux 系 统 中 ,可 用 的 ID E 有 K D evelop[1~],Q Develop[” 和 //创建场景的根节点 ,加载场景图 SlickE dit_1 。K D evelop 可以提供类似 于 V C 的开 发环境 ,功 S og ep a rato r th eR o o t — n ew S o S ep ara to r;

能相对 比较完 善 ,是 常用 的标准 ID E ;Q D evelop 是 一款完 全 th e R o o t > r ef( ) ; 面向 Q t 4 的开发工具 ,其功 能 目前还很 不完 善 ,暂 且无 法真 //添加其他节点 (sepT oo l、sepC lay 等 ) 正应用于实际的大型项 目开发过程 ;SlickE dit是 一款跨 平 台 th eR oot一> addC hild (sepT oo 1) ;//刀具 子场景 的 C # 开发工具 ,但并不 提供对 Q t 的直 接支持 ,而且在 软件 th eR oot一> addC hild (sepC lay) ;//油泥模型 开发时都需设置相应的配置文件 。因此 ,一般在 U nix/L inux //刀具和油泥模 型做布尔运算构建造型结果 中选用 K D evelop 作 为标 准 ID E 。 th eR o o t-> a d d C h ild ( vo lT o o l + v o lC la y ) ; //创建一个 O pen In ventor 渲染 区或者观察器 So Q tE xam inerV iew er * m yV iew er — new So Q tE xam in erV iew er(g~ m yW indow ,“view er”);

m y V ie w er-> setS c en eG ra p h (th e R o o t) ; //使用 show ()显示窗 口 m y V ie w e r-> sh o w ( ) ; //进入 Q t 的事件循 环 SoQ t::show (m yW indow ) ; SoQ t::m ain Loop ();

3.2 创建 V CM S 的场景 图 在 O pen Inventor 中,所 要显示 的一个 或多个场 景存储在 图 4 K D evelo p 3.4.1 在 R edH at L in ux 系统中的开发效果 场景 数 据 库 (scene database) 中 ,可 以 通 过 场 景 图 (scene K D evelop 是一 款 功 能 强 大 的开 发 工 具 。图 4 给 出 了 graph)来表达其结构形式 。节点 (node)是构成场景 的基本单 K D evelop 3.4.1 在 R ed H at L inux 系统中 的运 行示 意图 。在 元 ,可 以代表场 景 中的一个 几何 对象 、属 性对 象或其 组合 对 K D evelop 中,开发人员 可 以利用左侧 的类 视 图、文件 列表 等 象 。也就是说 ,场景图使用节 点来表 达场景 中的所有物 体 以

· 2 4 6 · 及物体之间 的相互关系 。在 V C M S 中,需要在三维 场景 中生 通 鼠标完成油泥模型的刮削 、填涂和刮补操作。 成模拟 的工作 环境 ,如 辅助 网格 、虚拟 刀具 和 油泥模 型 等节 点 。由于 V C M S 中的刀 具和油 泥模 型需要 根据用 户 的需要 而能够任意更换或者改变 ,所 以可把 它们作 为场景 图中的子 场景来加 以处理 ,如图 6 所示 。

(a)L inux 系统 (b)W indow s 系统

图 7 V C M S 在不同平台下 的初始运行效果

结束语 为 了解决应 用程 序跨平 台运行 的问题 ,本文 提 出了一种基 于 Q t和 O pen Inventor 并 在 V C 和 K D evelop 集 成开发环境 中构建 了可跨 平 台运行 的 V C M S ,也适 用于其 他 图 6 V C M S 的场景简图 三维 图形应用系统 的开发 过程 。该 方法利用 Q t 和 O pen In— 3.3 造型 中视点的控制 ventor完善 的跨平 台机制 ,构建 了可跨 平 台运 行 于 W indow s 考虑到虚拟油泥造 型过 程中需要 不断刮削或者添补油泥 和 L inux 操作 系统 的 V C M S 系统 。该 方 法利 用 L inux 系统 模型 ,并且设计人员会根据其 自身感 性认识 不断修 改模 型的 下 自行编译的 K D evelop 3.4.1 集成开发环 境 ,较好 地解决 了 造型效果 ,都要 求给 用户提 供一 种方 便 易操作 的 交互手 段 。 利用 G C C 和 M akefile 开发程序 时缺乏 ID E 的 问题 ,为 Linux 另一方面 ,出于完全模拟真实油泥造型效果等特殊 目的,也可 下程序开发提供 了新方法 。 能需要对 整个 场景 进行位 置角度 的精确控 制。因此 ,造 型过 限于实验室现有 的软硬件平 台和对 M ac O S 下开发环境 程的便捷 性和场景视点 的控 制易用性 是虚拟油泥造 型系统的 的掌握 ,我们 目前 尚无法 完成 M ac 0 S 平 台下 V CM S 的兼容 重要研究 内容 。 性验证 。同时 ,由于我们 现有 的 W indow s 平 台下的 O pen In— 在硬件设备上 ,我们选用 三维 鼠标l_】3]来控制 虚拟场景 中 ventor 6.0 与 Q t的开发模块只能二进制兼容 (binary com pat— 视点 的平移和旋转 。三维 鼠标能够监测到手指施加其上 的很 ible)于 Q t 3.1.2 ,使得 L inux 和 W indow s 系统 下的 A P I调用 轻微 的力 ,并将 其分解成 X ,y ,Z 方 向上 的平移 量和转 动量 ; 并不 完全相同 ,但随着 T G S 公 司对 O pen Inventor 的研发 ,我 通过获取 这 些量 来 构 成 场景 的平 移 矩 阵 T are 和 旋转 矩 阵 们相 信在不久的将来一定 可 以顺 利解决 这一 问题 。最后 ,由 于本 方法是基于源代码级 的跨平 台方案 ,所 以应该可 以顺利 M R 。用户通过变换矩 阵 M 与 T xrz和 M R 的积求得 场景 的最 终变换结果 : 实现 M ac O S 的跨平 台应用 。 平移 : 一 (P a ) [丁 ] (1) 参 考 文 献 旋转 :尸, 一 ( ) [ ] (2) [13 怀进鹏 ,李沁 ,胡春明.基于虚拟机 的虚拟计算环 境研究 与设 计 其 中, 和 M R 均为采 用齐 次 坐标形 式 的 4 ×4 变换 矩 阵 。 EJ3.软件学报 ,2007 ,18 (8) :2016—20 26 此时 ,用户则利用空 间球 的旋 转 、移 动等直 观操作 方式 ,大大 [2] B lanch ette J ,Sum m erfield M .C + + G U I P rog ram m ing w ith 提升 了空间操作的效率 。 Q t4[M ].Is.1_] :P ren tice H all P T R ,2006 因此 ,使用 三维 鼠标能够方便地对 (子)场景进行旋转 、移 [3] 闫锋欣 ,侯 增选 ,张定 华 ,等.O pen Inventor 程 序设 计 I-M ].北 动等操作 ,可 以提供 良好 的 6 自由度交互控制方式 。 京 :清华大学出版社 ,2007 3.4 系统 的程序实现 [4] 刘汇丹 ,芮建武 ,姚延栋 ,等.基于 Q t 的 国际化 图形用户界 面设 为确保 良好 的源代码级跨 平 台特性 ,V C M S 开 发中严格 计与实现[J].中文信息学报 ,2006 ,20(4) :94—99 实施 A N SI C + + 标准和基于 面 向对象 的编程 规范 。系统的 [53 B run R ,F ine V ,Lauret J,et a1.C ross-platfo rm approach to ere 整体结构遵循 Q t框架标 准 ,利用大量 的 自定义类和 c /c + + ate th e interactive applications based on R 0 O T and Q t G U I li— 的继承 、派生完成系统底层功 能 ,利 用 Q t 中的类 和方法 完成 braries[-J].N uclear Instrum ents and M eth ods in P hysics R e— 系统所需的用户交 互 、事 件管理 等 功 能 ,最 后 利用 O pen In— search Section A ,2004 ,534 (1/2) :94—97 ventor 实现结果的显示和控 制 ,因而可 以确保 源代 码 的移植 [6] 张淑焕 ,侯增选 ,孙根正 ,等.虚拟 油泥造型方法 [J].计算 机应 用 研究 ,2007 ,24(2) :181—182 性和硬件兼容能力 。 r7] Sm ith J E ,N air R .T h e architecture of virtual m achines.IE E E 4 运行效 果 比较 C o m p u te r ,2 0 0 5 ,3 8 ( 5 ) :3 2—3 8 [8] 赵斌 ,李欣 ,朱美 正.G IS 跨平 台技术研究 与实现 I-J].计 算机工 图 7 给出了 V CM S 在不同平 台下的运行效果 。图 7(a)是 程 与应用 ,200 5 ,4 1(23 ):193—195 ,212 V CM S 在 W indow s 下的运行效果 图,G U I 采用 Q t 4.3.2(商业 [9] Integrated C om puter Solution s ,In c .T he V iew K it P rogram — 版),图形核心采用 O pen Inventor 5.0,分辨率为 1024 ×768,开 m et’s G uide]-E B/O L ].(2002—04 )1-2007—1卜153.w 、^八^r.its.com 发环境 为 V C 6.0;图 7(b)给 出的是 V C M s 在 R edH at L inux /support/docs/view kit /2/view kit2prog.pdf 系统 下的运行效果 ,G U I采 用 Q t 4.3.2(open source 版 ),图 1,10] http t|| N .kd evelop.o rg /l,O L ] [200 7—10—12] 形核 心采用 O pen Inventor 6.1.2,分 辨率 为 1280 ×1024,开 1,11] http ://qd evelop.org/[0 L ] 1-200 7—10 16] 发环境为 K D evelop 。在运行的 V C M S 系统 中,通过鼠标拾取 [12] http ://w w w .slick edit.eom /[0 L] 1,2007—11—17] 场景 中的油泥模型或刀具 ,用户利用三维鼠标可 以方便地对其 1,13] 3D co nnexion Inc.3D M otion Co ntroller U N IX SD K G uide (V 3. 进行平移 、旋转;当鼠标点取场景(不拾取物体)时,则可以对场 2) [E B /O L ]. (2002—04 ) [2007—11~03 ]. http ://w w w .3dcon 景整体进行旋转操作 ;在达 到操 作视角时 ,用户 则可 以利 用普 nexion .corn /does/13dunix_sd k.pdf

· 2 4 7 ·