Microsoft Word - A200904-1992.doc



Similar documents
Microsoft Word - 19王建华.doc

第一章 Internet Server的架設及網頁的操作

碩士論文—健康促進醫院.PDF

的 水 準 (2) 與 同 儕 比 起 來 也 處 於 落 後 情 形 者 以 及 (3) 學 科 成 就 明 顯 落 後 者 三 類 型 ( 張 新 仁, 2001) 實 際 操 作 上, 目 前 我 國 所 篩 選 之 學 業 低 成 就 對 象, 乃 以 某 科 目 成 績 為 原 班 級 後

Microsoft Word - 中級會計學.doc

关 于 本 手 册 本 手 册 说 明 如 何 安 装 Print Client KM 以 及 使 用 方 法 Print Client KM 可 在 Microsoft Windows 2000/XP/Vista 上 使 用 本 手 册 的 目 标 用 户 是 已 掌 握 Windows 2000


Microsoft Word - A _ doc

Microsoft Word - 1-3陳詠琳-近代..

ebook50-15

<4D F736F F F696E74202D DBCC6CBE3BBFACDBCD0CED1A7BFCEB3CC205BBCE6C8DDC4A3CABD5D>

bingdian001.com


7 南 水 北 调 东 线 第 一 期 工 程 三 阳 河 潼 河 宝 应 站 工 程 设 计 江 苏 省 水 利 勘 测 设 计 研 究 院 有 限 公 陆 小 伟, 顾 美 娟, 张 仁 田, 王 钧, 焦 建 华, 张 艺, 朱 正 伟, 杨 俊 敬, 徐 文 俊, 张 娟, 钱 祖 宾, 汤


( ) :? : :? : : ( ) [1] ; [2] 34

定稿

2/80 2

KUKA W. Polini L. Sorrentino Aized Shirinzadeh 6 7 MF Tech Pitbull Fox Taniq Scorpo Scorpo Compositum Windows KUKA 1 P 1 P 2 KU

壹:教育文化公益慈善機關或團體免納所得稅適用標準


蘇櫻 慧雪蘇紅櫻 2

内科自诊自疗

由社會發展趨勢探討國人睡眠品質

Mechanical Science and Technology for Aerospace Engineering October Vol No. 10 Web SaaS B /S Web2. 0 Web2. 0 TP315 A

交流活动

Microsoft Word 校課委會會議議程

(Microsoft Word - \277\357\262\325\252\272\246\322\266q.doc)

p 3 p 4 p 5 p 6 p 7 p 8 p 9 p 10 p 11 θ 1 θ 2 θ 3 θ 4 θ 5 θ 6 θ 7 θ 8 θ 9 θ d 1 = 0 X c 0 p 1 p 2 X c 0 d pi p j p i p j 0 δ 90

高尔夫赌博现金棋牌,能赚现金的棋牌游戏 街机赌博游戏 真钱的棋牌游戏,30

附件4

<4D F736F F D20A3A8D3A1CBA2A3A C4EAB1BEBFC6D7A8D2B5BDE9C9DC5FD6D0CEC45FA3A A3A9>

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二


报 告 简 要 丽 江 古 城 位 于 云 南 省 西 北 部, 始 建 于 宋 末 元 初 古 城 西 北 方 30 公 里 处 是 海 拔 5596 米 的 玉 龙 雪 山 及 第 四 世 冰 川 遗 迹 丽 江 古 城 在 南 宋 时 期 就 初 具 规 模, 已 有 八 九 百 年 的 历

有 不 良 企 图 时, 就 要 立 即 躲 开 他 当 你 实 在 难 以 分 辨 对 方 是 真 心 实 意 还 是 虚 情 假 意 时, 可 向 父 母 老 师 或 周 围 较 成 熟 和 亲 近 的 朋 友 请 教, 请 他 们 帮 你 分 析 情 况, 做 出 判 断 此 时, 拒 绝 帮

內 容 及 試 題 範 例 術 科 評 量 規 範 評 分 標 準 一 (, 工 具 與 材 料 由 本 校 提 供, 考 生 無 須 自 備 ) ( 一 ) 基 本 焊 接 工 具 操 作 及 辨 識 基 本 手 工 具 設 備 ( 二 ) 測 驗 時 間 50 分 鐘 ( 三 ) 工 具 與 材

交 通 部 公 路 總 局 新 竹 區 監 理 所 104 年 第 2 次 契 約 服 務 員 甄 試 試 場 序 號 試 場 序 號 姓 名 A01 A02 A03 A04 A05 A06 A07 A08 A09 A10 A11 A12 A13 A14 A15 A16 張 齡 文 王 美 蕙 吳

美 国 研 究

玻璃幕墙工程质量检验标准 JGJ/T


《垓下歌》 項羽

2.??,,,,, ;,,,,,,,, 3.?,,?,?,

宜蘭縣風景區管理所五峰旗風景特定風景區開放行動咖啡車作業投標須知

第 二 十 七 章 一 夜 苦 熬 第 二 十 八 章 租 房 同 居 第 二 十 九 章 二 人 世 界 第 三 十 章 取 消 面 试 第 三 十 一 章 中 暑 卧 床 第 三 十 二 章 找 到 工 作 第

玻璃幕墙工程质量检验标准 JGJ/T

2

Microsoft Word - 中耳的主要疾病~中耳炎.doc

(Electronic Data Interchange) (Executive Information System) (Economic Order Quantity) (Enterprise Resource Planning) (Flexible Manufacture System) (F

目 录 第 一 部 分 毕 业 设 计 / 毕 业 实 习 工 作 计 划 总 则 成 立 毕 业 设 计 毕 业 实 习 工 作 领 导 小 组 毕 业 设 计 时 间 安 排...4 第 二 部 分 毕 业 设 计 任 务 书 毕

<4D F736F F D20A1B4A6D1AC75BE69A5CDA5F0B6A2B941B3F5B0AAA67EAFC5A455BEC7B4C12E646F63>

Microsoft PowerPoint - cg_ch02_01

untitled

( 二 ) 拓 展 岗 位 ( 群 ) 1. 餐 厅 服 务 岗 位 群 在 大 中 型 餐 饮 企 业 星 级 饭 店 主 要 从 事 餐 饮 服 务 的 有 关 工 作, 如 服 务 员 点 菜 师 茶 艺 师 咖 啡 师 调 酒 师 等 2. 食 品 加 工 岗 位 群 主 要 从 事 餐 饮

竹地板知识.docx

目录.doc

等级

<4D F736F F F696E74202D20C15AAEC4A6D2AED6BB50C15AAEC4BADEB27A2D2DA578A4A4AF5A5B315D>

第 02 期 1 医 疗 信 息 现 状 20% EMR Electronic Medical Record HIS HIS [1-2] 张 肖 等 : 基 于 大 数 据 的 医 疗 健 康 创 新 应 用 2 大 数 据 环 境 下 医 疗 数 据 特 征 分 析 PC [3]


untitled

FY.DOC

<4D F736F F D20B9E3B6ABB9E3D1C5D6D0D1A7B8B0C8D5BFC6BCBCBDBBC1F7BFBCB2ECB1A8B8E6>

声 明 本 人 郑 重 声 明 : 此 处 所 提 交 的 硕 士 学 位 论 文 基 于 等 级 工 鉴 定 的 远 程 考 试 系 统 客 户 端 开 发 与 实 现, 是 本 人 在 中 国 科 学 技 术 大 学 攻 读 硕 士 学 位 期 间, 在 导 师 指 导 下 进 行 的 研 究

事故的共性原因: 行为、知识、习惯

132 包 装 工 程 2016 年 5 月 网 产 品 生 命 周 期 是 否 有 与 传 统 产 品 生 命 周 期 曲 线 相 关 的 类 似 趋 势 旨 在 抛 砖 引 玉, 引 起 大 家 对 相 关 问 题 的 重 视, 并 为 进 一 步 研 究 处 于 不 同 阶 段 的 互 联 网

TI 3 TI TABLE 4 RANDBIN Research of Modern Basic Education

CHINA SCIENCE AND TECHNOLOGY DEVELOPMENT REPORT

2. 相 关 专 业 基 本 情 况 新 专 业 代 码 新 专 业 名 称 旧 专 业 代 码 旧 专 业 名 称 专 业 方 向 代 码 专 业 方 向 名 称 205 实 际 招 生 数 ( 人 ) 205 新 生 报 到 数 (%) 205 初 次 就 业 率 (%) 学 生 可 以 获 取

18-陈亚莉.FIT)

2 3. 1,,,.,., CAD,,,. : 1) :, 1,,. ; 2) :,, ; 3) :,; 4) : Fig. 1 Flowchart of generation and application of 3D2digital2building 2 :.. 3 : 1) :,

三維空間之機械手臂虛擬實境模擬

六 到 八 歲 兒 童, 設 計 並 發 展 一 套 以 van Hiele 幾 何 思 考 層 次 理 論 為 基 礎 的 悅 趣 化 學 習 數 位 教 材, 取 名 為 米 德 玩 形 狀, 同 時 探 討 低 年 級 學 童 在 使 用 本 數 位 教 材 之 後, 在 平 面 幾 何 的

CadCaeCamPlm VTK rinqar VTK C++ VTK VTK VTK cmake VTK VTK VTK vtk VTK Download vtk

1 引言

<453A5C6E6F F6F6B5CBFECC5CC5CB9A4D4BA5C31322D3133D1A7C4EA5CB5DA32D1A7C6DA5CC6E4CBFB5CBEABC6B7BFCE5C C4EAB6C8C8ABCAA1B8DFB5C8D6B0D2B5D1A7D0A3BEABC6B7BFCEB3CCC9EAB1A82DB9A4B3CCC1A6D1A7342E646F63>

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

Important Notice SUNPLUS TECHNOLOGY CO. reserves the right to change this documentation without prior notice. Information provided by SUNPLUS TECHNOLO

引 言 目 录 许 敏 达 麦 格 劳 - 希 尔 建 筑 信 息 公 司 中 国 区 副 总 裁 Stephen A. Jones 麦 格 劳 - 希 尔 建 筑 信 息 公 司 业 务 拓 展 高 级 总 监 BIM 事 务 专 家 建 筑 事 业 是 一 项 集 体 运 动 建 筑 信 息 模

标题

中国内部审计协会交通分会

, [3 ] Petri, 25 7, 500, [4,5 ], 3, (2), 2003, [ 6 ],,, ,, [7 ], 569, 26, ( ) : 2 ; 3 ; 4, ; 5, : (a) ( ) :,,

,2(1) 基 礎 上, 各 種 數 據 均 以 圖 形 化 方 式 表 達, 因 此 各 級 分 析 結 果 均 可 以 隨 時 檢 驗 另 外, 由 於 系 統 是 以 網 站 形 式 發 佈, 任 何 用 戶 均 可 通 過 網 絡 查 詢 瀏 覽 系 統 中 的 數 據, 因

EWHA WOMANS UNIVERSITY 专 业 介 绍

(Popham W. James) (1992) ( ) 1. (1) (2) 2. ( ) (1A 1B ) 139 Education 70 71

6020

一、公司基本情况

用户大会 论文集2.2.doc

untitled

中 文 摘 要 一 个 蛋 白 质 去 折 叠 可 视 化 系 统 的 设 计 与 实 现 中 文 摘 要 蛋 白 质 的 生 物 功 能 由 其 三 维 结 构 所 决 定, 而 蛋 白 质 通 过 特 定 的 折 叠 机 制 行 成 稳 定 的 空 间 结 构 当 前 生 物 科 学 领 域 一

目 录

1.0 % 0.25 % 85μm % U416 Sulfate expansion deformation law and mechanism of cement stabilized macadam base of saline areas in Xinjiang Song

Outline Speech Signals Processing Dual-Tone Multifrequency Signal Detection 云南大学滇池学院课程 : 数字信号处理 Applications of Digital Signal Processing 2

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

s3ao.book

附件四:

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

件 驱 动 属 短 线 操 作, 操 作 风 险 相 对 较 大, 建 议 快 进 快 出, 不 可 恋 战! 昨 日 盘 面 中 表 现 活 跃 的 品 种 多 为 低 价 股, 钢 铁 煤 炭 成 为 涨 幅 居 前 的 品 种, 有 以 下 几 点 值 得 关 注 : 首 先 从 行 业 看,

管道建模基础.ppt

Transcription:

基 于 OpenGL 的 HPGL 数 据 异 形 体 模 型 三 维 建 模 贾 龙 1 1,, 方 亮 2, 陈 太 喜 2 2, 刘 艳 伟 1 中 国 矿 业 大 学 材 料 科 学 与 工 程 学 院, 江 苏 徐 州 (22116) 2 中 国 矿 业 大 学 机 电 工 程 学 院, 江 苏 徐 州 (22116) E-mail:jjllI58738432@yahoo.com.cn 摘 要 : 通 过 利 用 OpenGL 图 形 编 程 工 具 和 Visual C++6.0 编 程 语 言, 详 细 阐 述 了 基 于 端 面 HPGL 数 据 文 件 的 异 形 体 模 型 的 建 模 方 法 使 用 OpenGL 对 异 形 体 三 维 模 型 添 加 进 行 真 实 感 渲 染 视 角 变 换 平 移 缩 放 等 操 作, 实 现 了 异 形 体 模 型 在 OpenGL 图 形 窗 口 中 直 接 显 示, 以 便 在 模 型 加 工 成 形 之 前 检 验 其 端 面 图 元 几 何 设 计 的 合 理 性 和 预 测 被 加 工 异 形 体 的 几 何 造 型 关 键 词 :HPGL 格 式 ;OpenGL; 几 何 建 模 中 图 分 类 号 :TP391.72 1. 引 言 HPGL 是 Hewlett-Packard Graphics Language 首 字 母 缩 写, 中 文 翻 译 为 惠 普 绘 图 语 言, 是 惠 普 公 司 于 20 世 纪 50 年 代 为 控 制 其 绘 图 仪 产 品 建 立 的 一 套 指 令 系 统, 随 后 HPGL 被 广 泛 的 使 用 于 绘 图 仪 和 打 印 机 控 制 语 言 并 成 为 标 准 [1] 它 有 plt hpg hp2 pl2 prn 四 种 扩 展 名, 以 plt 最 为 常 用, 本 文 是 以 plt 格 式 为 数 据 对 象 HPGL 原 来 是 为 控 制 绘 图 仪 而 设 计 的, 所 以 它 只 能 表 达 二 维 图 形 而 且 是 非 交 互 的, 但 由 于 HPGL 格 式 文 件 具 有 简 洁 高 效 容 易 理 解 和 修 改 等 优 点, 它 的 描 述 机 制 也 非 常 合 适 表 达 几 何 图 形, 于 是 HPGL 文 件 格 式 成 为 CAD 矢 量 绘 图 和 加 工 的 一 种 重 要 数 据 格 式 国 内 外 部 分 EPS( 聚 苯 乙 烯 泡 沫 塑 料 ) 快 速 成 形 机 加 工 文 件 都 采 用 plt 文 件 格 式, 例 如 波 兰 MEGAPLOT 公 司 的 快 速 成 形 机 和 西 安 交 通 大 学 研 发 的 FoamCutter 快 速 成 形 系 统 等 [2] OPenGL 是 一 个 性 能 卓 越 的 三 维 图 形 标 准, 作 为 一 种 硬 件 图 形 发 生 器 的 软 件 接 口, 它 包 括 了 模 型 绘 制 坐 标 变 换 颜 色 模 式 设 置 光 照 和 材 质 设 置 管 理 位 图 和 图 像 增 强 纹 理 映 射 实 时 动 画 交 互 技 术 在 内 的 八 大 功 能 和 大 约 250 个 不 同 的 函 数, 能 够 建 立 交 互 的 三 维 场 景 和 构 造 三 维 景 物 模 型 异 形 体 是 指 工 件 的 上 下 端 面 的 图 形 不 相 同 或 者 相 似, 比 如 上 端 面 是 个 圆, 下 端 面 是 个 方, 上 下 端 面 之 间 平 滑 地 过 渡, 如 图 1 所 示 由 于 异 形 体 三 维 形 状 不 同 于 一 般 规 则 零 件 的 形 状, 设 计 者 很 难 在 异 形 体 模 型 设 计 之 初 准 确 把 握 其 上 下 端 面 几 何 图 形 的 绘 制, 所 以 利 用 OpenGL 建 立 三 维 仿 真 环 境 及 对 基 于 二 维 HPGL 数 据 格 式 的 异 形 体 进 行 三 维 建 模, 实 现 三 维 真 实 感 渲 染 视 角 变 换 显 示 缩 放 等, 使 基 于 端 面 二 维 HPGL 数 据 的 异 形 体 模 型 显 示 更 加 直 观, 更 加 完 善, 更 方 便 地 检 验 异 形 体 端 面 图 形 几 何 设 计 合 理 性, 从 而 得 到 正 确 的 异 形 体 端 面 HPGL 加 工 文 件

图 1 异 形 体 模 型 2. Visual C++ 中 OpenGL 三 维 仿 真 环 境 的 构 建 在 VC++6.0 开 发 环 境 下 开 发 OPenGL 应 用 程 序 需 解 决 OPenGL 与 VC++6.0 窗 口 系 统 的 接 口 问 题, 主 要 是 为 OpenGL 创 建 适 当 的 图 形 操 作 描 述 表 并 设 置 正 确 的 像 素 格 式 此 外 就 是 要 将 OpenGL 编 程 与 VC++6.0 事 件 编 程 相 结 合, 在 VC++6.0 事 件 处 理 程 序 中 利 用 OpenG 进 行 图 形 绘 制, 从 而 真 正 地 将 OpenGL 融 入 到 程 序 中, 使 之 于 程 序 的 其 他 部 分 有 机 地 结 合 成 为 一 个 整 体 用 VC++6.0 编 写 OPenGL 程 序 的 基 本 步 骤 如 下 : (1) 利 用 MFC AppwiZard 建 立 一 个 多 文 档 应 用 程 序 框 架 在 文 档 视 图 结 构 中, 视 图 负 责 窗 口 中 内 容 的 显 示, 因 此 所 有 的 OpenGL 绘 制 工 作 应 放 在 视 图 类 中 进 行 (2) 打 开 资 源 编 辑 器 对 程 序 界 面 上 的 菜 单 对 话 框 等 资 源 进 行 必 要 的 修 改 (3) 在 程 序 中 包 含 进 库 函 数 文 件 和 OpenGL 的 头 文 件 在 Visual C++ 开 发 环 境 下, 选 择 Project Setting 菜 单, 在 Link 标 签 中 的 Object/library moduls 编 辑 框 中 输 入 opengl32.lib glu32.lib 库 函 数 文 件 在 视 图 类 C~View 的 头 文 件 ~View.h 中, 包 含 有 关 OpenGL 的 头 文 件, 如 下 : #include gl\gl.h # include gl\glu.h # include gl\glut.h 其 中 gl.h 文 件 是 OpenGL 必 不 可 少 的,glu.h 文 件 表 示 要 用 到 OpenGL 实 用 库 函 数,glut.h 表 示 会 用 到 的 OpenGL 工 具 库 [3] (4) 利 用 Classwizard 进 行 OpenGL 所 必 须 的 初 始 化 工 作 OpenGL 的 初 始 化 工 作 包 括 : 设 置 像 素 格 式 建 立 着 色 描 述 表 以 及 初 始 化 OpenGL 投 影 观 察 体 系 等 工 作 通 过 象 素 格 式 的 设 置, 规 定 了 OpenGL 对 象 素 进 行 操 作 的 基 本 方 式 绘 制 描 述 表 指 明 了 Windows 进 行 图 形 显 示 的 基 本 属 性 (5) 根 据 用 户 对 程 序 的 功 能 要 求, 利 用 VC++6.0 中 的 各 种 编 辑 工 具, 给 视 图 类 C_View 或 其 它 类, 添 加 具 有 相 应 功 能 的 成 员 函 数, 以 及 进 行 相 应 的 事 件 处 理 运 用 OpenGL 函 数 绘 制 图 形, 包 括 定 义 观 察 区 域 建 立 光 照 模 型 实 现 图 形 的 平 移 旋 转 缩 放 的 等 功 能, 均 在

这 部 分 完 成, 这 是 程 序 开 发 的 核 心 内 容 (6) 图 形 绘 制 完 毕 后, 通 过 响 应 Windows 消 息 WM_DESTORY 来 删 除 着 色 描 述 表 (7) 利 用 VC++6.0 的 编 译 工 具, 进 行 程 序 的 编 译 链 接 及 调 试 等 工 作 3 HPGL 文 件 数 据 读 取 与 建 立 模 型 显 示 数 据 格 式 3.1 HPGL 文 件 格 式 HPGL 格 式 文 件 由 一 系 列 指 令 组 成, 每 个 指 令 由 两 个 大 写 字 母 组 成, 后 面 或 有 或 没 有 跟 着 参 数 ( 数 字 ), 当 后 面 跟 有 参 数 时, 两 个 大 写 字 母 后 的 第 一 个 数 据 为 第 一 个 参 数, 参 数 多 于 一 个 时 以 空 格 分 开, 指 令 以 分 号 结 束 若 参 数 为 字 符 串, 则 以 换 行 表 示 结 束 以.plt 为 后 缀 名 的 HPGL 文 件 的 图 形 格 式 是 矢 量 格 式, 它 将 坐 标 系 中 各 点 按 顺 序 用 直 线 连 接 起 来 构 成 几 何 图 形 在 CorelDRAW 11 里 画 一 个 10mm 10mm 的 正 方 形, 以 HPGL(.plt) 保 存, 并 用 记 事 本 将 该 文 件 打 开, 我 们 将 看 到 记 事 本 包 含 有 下 面 的 内 容 : PU0 0; PD400 0; PD400 400; PD0 400; PD0 0; SP0; HPGL 指 令 有 近 百 条, 很 多 指 令 和 绘 图 仪 控 制 直 接 相 关, 而 对 数 据 交 互 有 用 的 指 令 并 不 多, 下 面 仅 就 上 文 所 述 正 方 形 文 件 对 应 的 HPGL 文 件 中 的 与 图 形 坐 标 数 据 有 关 的 指 令 加 以 说 明 PU Pen Up 抬 起 画 笔, 后 面 的 参 数 为 X 坐 标 Y 坐 标 PD Pen Down 落 下 画 笔, 后 面 的 参 数 为 X 坐 标,Y 坐 标 SP0 Select Pen 0 不 选 择 任 何 画 笔, 结 束 标 志 HPGL 的 指 令 虽 然 很 多, 但 从 CorelDRAW 保 存 的.plt 文 件 看, 常 用 指 令 只 有 10 条 左 右 与 图 形 上 点 的 坐 标 值 相 关 的 指 令 有 PU PD 和 SP0 PU 指 令 提 笔 移 动 到 图 形 单 元 的 起 点, 即 PU 指 令 后 面 参 数 所 表 示 的 坐 标 点, 接 着 是 一 系 列 PD 指 令 落 笔 画 线, 直 线 连 接 上 一 指 令 参 数 所 表 示 的 坐 标 点 和 这 一 指 令 参 数 所 表 示 的 坐 标 点 由 于 每 个 图 形 单 元 是 连 续 的, 所 以 画 图 形 单 元 的 程 序 都 是 一 个 PU 指 令 加 若 干 PD 指 令, 最 后 一 个 PD 指 令 将 画 笔 移 动 到 图 形 单 元 的 终 点, 如 果 图 形 单 元 是 封 闭 的, 那 么 最 后 一 个 PD 指 令 将 使 画 笔 回 到 PU 指 令 开 始 的 那 一 点 SP0 表 示 图 形 文 件 所 有 坐 标 点 绘 制 完 毕, 文 件 结 束 3.2 HPGL 文 件 数 据 读 取 对 于 HPGL(.plt) 格 式 文 件 的 内 容, 作 者 只 关 心 其 所 表 达 的 图 形, 由 上 文 对 HPGL 格 式 文

件 的 数 据 结 构 的 分 析 可 知, 图 形 需 要 的 数 据 仅 为 指 令 PU 及 PD 后 面 所 带 的 参 数 及 程 序 结 束 指 令 SP0 即 只 将 图 形 单 元 的 数 据 点 依 次 有 序 地 记 录 下 来, 程 序 的 数 据 结 构 采 用 链 表 结 构 链 表 每 个 节 点, 分 别 记 录 所 读 取 的 图 形 单 元 的 编 号, 即 第 几 个 图 形 单 元, 记 录 所 读 取 的 数 据 是 该 图 形 单 元 的 第 几 个 点, 以 及 对 应 的 X 坐 标 和 Y 坐 标, 所 以 定 义 如 下 的 数 据 结 构 : struct HPGLORIGINALDATA // 描 述 HPGL 格 式 文 件 图 形 的 数 据 结 构 { int NoOfItem; int NoOfPoint; float x; float y; // 记 录 第 几 个 图 形 单 元 // 记 录 图 形 单 元 的 第 几 个 点 // 点 的 X 坐 标 // 点 的 Y 坐 标 }; typedef CList<HPGLORIGINALDATA, HPGLORIGINALDATA> HPGLModeList; // 定 义 该 HPGL 数 据 结 构 的 链 表 typedef CArray<HPGLOriginalDataList, HPGLOriginalDataList> ModeListArray; // 定 义 存 储 数 据 的 链 表 数 组 HPGL 文 件 的 读 入, 本 文 选 择 使 用 C++ 中 的 fstream 类, 具 体 执 行 过 程 是 先 生 成 一 个 fstream 对 象 m_fin, 用 一 个 循 环 语 句 逐 行 读 取 数 据, 依 次 读 取 指 令 PU 和 PD 后 面 的 数 据, PU 和 下 一 个 PU 之 间 所 有 指 令 PU PD 的 数 据 存 储 在 一 个 链 表 中, 遇 到 一 个 PU 指 令 就 开 始 链 表 数 组 中 下 一 个 链 表 的 数 据 存 储, 直 到 读 入 SP0 中 止 循 环 并 结 束 ; 若 是 遇 到 其 他 指 令, 不 执 行 操 作 依 次 读 取 异 形 体 模 型 上 下 端 面 HPGL 文 件, 分 别 形 成 上 下 端 面 两 个 图 形 链 表 数 组 m_modelistuparray 和 m_modelistdownarray 3.3 异 形 体 点 插 补 数 据 处 理 由 于 异 形 体 模 型 的 特 殊 性, 其 上 下 端 面 具 有 不 同 的 几 何 图 元, 建 模 要 求 上 下 端 面 之 间 平 滑 地 过 渡, 即 必 须 经 过 三 维 建 模 数 据 前 处 理 使 异 形 体 上 下 端 面 几 何 图 元 具 有 相 同 的 节 点 数, 这 个 过 程 我 们 称 为 异 形 体 点 插 补 如 图 2(a) (b) 所 示 图 形 为 异 形 体 模 型 上 下 端 面 图 元 节 点 分 布, 黑 色 节 点 表 示 原 图 形 节 点 分 布, 红 色 部 分 为 经 过 异 形 体 点 插 补 处 理 后 对 所 在 图 元 添 加 的 新 节 点, 以 满 足 模 型 上 下 端 面 的 坐 标 节 点 个 数 必 须 相 同 A5 B6 B5 B4 A6 A4 A7 A3 B7 B3 A0 A2 A1 B0 B1 (a) 模 型 上 端 面 (b) 模 型 下 端 面 B2

图 2 异 形 体 模 型 端 面 图 元 异 步 点 插 补 异 步 点 插 补 的 中 心 思 想 是 : 在 一 端 图 形 中 的 所 有 点 中, 每 一 个 点 相 对 与 该 图 形 的 起 始 点 的 路 程 与 该 图 形 的 周 长 的 比 率 如 果 不 能 在 另 一 个 图 形 中 找 到 一 点 相 对 于 起 始 的 路 程 和 其 所 在 图 形 的 周 长 的 比 率 相 等, 就 必 须 在 没 有 对 应 点 的 图 形 中 对 应 的 补 一 个 点 例 如 图 1 异 形 体 模 型 端 面 异 步 插 补 点 示 意 图 如 图 2 所 示, 首 先 确 定 上 下 端 面 图 元 起 始 点 为 A0 和 B0; 然 后, 进 行 异 步 点 插 补 处 理, 例 如 (a) 图 中 的 A1 点 在 原 (b) 图 中 没 有 周 长 比 率 相 同 点 与 其 对 应, 通 过 异 步 点 插 补 原 理, 在 (b) 图 图 元 中 插 补 一 点 B1 与 (a) 图 中 A1 点 形 成 对 应 点 这 样, 将 所 有 对 应 点 补 上 以 后, 如 图 (b) 所 示, 模 型 下 端 面 图 形 为 八 个 点, 和 上 端 面 图 元 节 点 数 一 致, 并 且 每 一 个 点 相 对 于 起 点 的 路 程 与 其 所 在 的 图 形 的 周 长 的 比 值 与 另 一 个 图 形 中 对 应 点 与 其 所 在 的 图 形 的 起 点 的 路 程 与 其 周 长 的 比 值 是 相 等 的 经 过 异 步 点 插 补 处 理 的 异 形 体 端 面 图 元 链 表 数 组 作 为 三 维 建 模 数 据 源 进 行 异 形 体 的 几 何 建 模 3.4 异 形 体 三 维 建 模 数 据 格 式 OpenGL 的 数 据 类 型 定 义 可 以 与 其 它 语 言 一 致, 例 如 GLint GLfloat 等 [4] 异 形 体 三 维 建 模 用 OpenGL 双 精 度 浮 点 数 GLdouble 来 定 义 端 面 图 元 节 点 坐 标 数 据 类 型, 用 GLdouble[3] 数 组 存 放 图 元 节 点 x y z 三 维 坐 标 值 设 计 用 于 储 存 异 形 体 对 应 端 面 图 元 的 二 维 链 表 数 组, 具 体 定 义 如 下 : CArray<GLdouble*,GLdouble*> ModeArray[3][2]; ModeArray[3][2] 包 含 上 下 两 个 端 面 链 表 数 组, 每 个 数 组 最 多 有 三 个 图 元 的 坐 标 链 表, 模 型 侧 面 绘 制 和 端 面 绘 制 使 用 同 一 数 据 结 构 数 组 的 每 个 元 素 均 为 GLdouble 型 的 指 针, 该 指 针 指 向 一 个 包 含 三 个 GLdouble 型 的 数 组, 即 三 维 坐 标 数 值 将 链 表 数 组 m_modelistuparray 和 m_modelistdownarray 图 形 坐 标 依 次 对 应 储 存 到 ModeArray[3][2] 数 据 里 面 形 成 三 维 建 模 数 据 源 4 异 形 体 三 维 建 模 在 OpenGL 中 没 有 三 维 实 心 体 的 概 念, 所 有 的 几 何 物 体 最 终 都 是 由 一 定 顺 序 的 顶 点 组 成 的 面 来 描 述 的 通 过 调 用 glvertex( ) 函 数, 来 定 义 一 个 二 维 三 维 或 者 一 个 用 其 次 坐 标 定 义 的 顶 点 连 续 的 调 用 顶 点 定 义 函 数 可 以 生 成 一 系 列 顶 点 线 或 多 边 形 等 这 些 定 义 的 顶 点 放 在 glbegin( ) 和 glend( ) 函 数 之 间 绘 制 基 本 图 元,OpenGL 通 过 这 些 基 本 图 元 构 造 出 复 杂 形 体 异 形 体 三 维 建 模 的 图 元 顶 点 数 据 存 放 在 ModeArray[3][2] 链 表 数 组 中, 通 过 数 据 调 用 分 别 绘 制 出 异 形 体 模 型 的 侧 面 和 端 面 并 进 行 图 形 渲 染 4.1 异 形 体 的 侧 面 建 模 异 形 体 模 型 的 侧 面 显 示 原 理 : 绘 制 四 边 形 片 利 用 OpenGL 基 本 图 元 绘 制 状 态 变 量

GL_QUADS, 依 次 画 出 每 个 四 边 形 如 图 3 所 示, 模 型 上 端 面 点 C1 C2 与 下 端 面 点 D2 D1 绘 制 一 个 四 边 形 片, 遍 历 图 元 坐 标 链 表 依 次 绘 制 四 边 形 最 终 形 成 模 型 的 侧 面 工 件 模 型 的 侧 面 建 模 实 现 函 数 为 DrawModel( ), 其 建 模 原 理 示 意 图 图 3 侧 面 建 模 原 理 4.2 异 形 体 的 端 面 建 模 异 形 体 模 型 的 端 面 是 整 个 异 形 体 三 维 建 模 中 的 难 点, 异 形 体 端 面 端 面 有 凹 多 边 形 中 间 有 洞 的 多 边 形 这 时,OpenGL 的 基 本 图 元 绘 制 没 有 办 法 达 到 要 求 因 为 OpenGL 为 了 能 快 速 渲 染 多 边 形, 只 能 直 接 显 示 简 单 凸 多 边 形 ( 多 边 形 中 任 意 两 点 的 连 线 上 的 所 有 点 仍 属 于 此 多 边 形 ), 对 凹 多 边 或 者 交 叉 多 边 形 渲 染 结 果 将 不 确 定 为 了 优 化 性 能,OpenGL 工 具 库 GLU 对 OpenGL 函 数 库 进 行 了 一 些 补 充, 以 支 持 一 些 高 层 操 作 GLU 包 括 了 一 些 函 数, 把 复 杂 多 变 形 分 格 化 多 个 凸 多 边 形, 然 后 再 由 基 本 的 OpenGL 函 数 进 行 渲 染 OpenGL 的 函 数 库 中 提 供 分 格 化 的 函 数 是 以 通 过 多 边 型 轮 廓 线 生 成 简 单 多 边 形, 从 而 渲 染 复 杂 多 边 形 [5] 所 以 异 形 体 端 面 的 建 模 需 要 用 多 边 形 的 分 格 化 对 端 面 进 行 处 理, 然 后 进 行 渲 染 显 示 GLU 提 供 一 组 函 数 来 执 行 分 格 化 操 作, 这 些 函 数 所 接 受 的 参 数 就 是 描 述 这 些 难 以 渲 染 的 复 杂 多 边 形 的 轮 廓 线, 并 返 回 一 些 三 角 形 三 角 形 网 三 角 形 扇 以 及 直 线 的 组 合 [6] 使 用 自 定 义 函 数 DrawSection( ) 实 现 异 形 体 端 面 的 几 何 建 模 其 中 调 用 多 边 形 的 分 格 化 函 数 完 成 工 件 端 面 的 绘 制 异 形 体 端 面 图 元 建 模 过 程 中 的 图 元 分 格 化 主 要 工 作 具 体 步 骤 如 下 : (1) 在 自 定 义 函 数 DrawSection( ) 中 进 行 分 格 化 操 作 初 始 设 置, 使 用 glunewtess 函 数 创 建 一 个 分 格 化 对 象 GLUtesselator, 与 多 边 形 描 述 和 分 格 化 相 关 的 顶 点 和 回 调 函 数 都 连 接 到 这 个 分 格 化 对 象 中 GLUtesselator *glunewtess(void); (2) 设 置 回 调 函 数 : 多 次 调 用 glutesscallback 函 数, 注 册 多 个 回 调 函 数, 用 于 分 格 化 期 间 执 行 必 要 操 作 ( 每 个 分 格 化 对 象 需 要 注 册 多 个 回 调 函 数 ) 1 在 三 角 形 生 成 的 开 始 只 调 用 glbegin 的 回 调 函 数 glutesscallback(ptess,glu_tess_begin,(void( stdcall*)( ))glbegin);

2 在 三 角 形 生 成 的 结 束 只 调 用 glend 的 回 调 函 数 glutesscallback(ptess,glu_tess_end,(void( stdcall*)( ))glend); 3 为 每 个 顶 点 只 调 用 glvertex3fv 的 回 调 函 数 glutesscallback(ptess,glu_tess_vertex,(void( stdcall*)( ))glvertex3dv); 4 调 用 glutessproperty 函 数 制 定 分 格 化 的 属 性, 对 分 格 化 算 法 进 行 控 制 在 这 些 属 性 中 最 重 要 最 复 杂 的 是 环 绕 规 则, 控 制 生 成 多 边 形 是 以 填 充 多 边 形 还 是 以 轮 廓 的 形 式 绘 制, 以 及 合 并 顶 点 所 需 的 距 离 阈 值 glutessproperty(ptess,glu_tess_winding_rule, GLU_TESS_WINDING_ODD); // 如 何 计 算 填 充 和 开 放 区 域 本 文 的 环 绕 规 则 用 glutessproperty 函 数 指 定 如 下 : glutessproperty(ptess,glu_tess_winding_rule,glu_tess_winding_odd) ; glutessproperty 第 二 个 参 数 使 用 GLU_TESS_WINDING_RULE, 其 value 取 默 认 值 GLU_TESS_WINDING_ODD, 表 示 渲 染 环 绕 数 为 奇 数 的 区 域 (4) 程 序 定 义 一 个 端 面 索 引 变 量 用 来 指 定 一 个 或 多 个 封 闭 多 边 形 轮 廓, 用 于 创 建 和 渲 染 经 过 分 格 后 的 简 单 多 边 形 集 合 通 过 端 面 索 引 赋 值 的 改 变 来 分 别 指 向 经 过 建 模 数 据 处 理 的 异 形 体 上 下 端 面 坐 标 链, 然 后 定 义 一 个 异 形 体 端 面 基 本 形 状 判 断 式, 利 用 加 载 工 件 的 端 面 图 元 数 来 判 断 工 件 的 类 型, 异 形 体 端 面 图 形 的 类 型 基 本 分 为 单 连 通 域 双 连 通 域 和 三 连 通 域 三 种, 然 后 根 据 不 同 端 面 类 型 来 指 定 端 面 图 元 的 离 散 数 据 轮 廓, 循 环 调 用 数 组 ModeCutArray[3][2] 元 素, 用 于 逆 时 针 指 定 多 边 形 轮 廓, 完 成 一 个 端 面 的 面 片 渲 染 (5) 分 别 对 工 件 两 个 端 面 的 分 格 化 渲 染 之 后, 调 用 函 数 gludeletetess(ptess); 函 数 删 除 分 格 化 对 象, 程 序 运 行 结 束 5 异 形 体 模 型 的 三 维 显 示 及 三 维 观 察 在 仿 真 窗 口 中 进 行 基 于 OpenGL 的 HPGL 数 据 格 式 三 维 模 型 显 示, 如 图 4(a) (b) 分 别 为 异 形 体 工 件 三 维 仿 真 模 型 的 填 充 显 示 和 线 框 显 示 另 外, 添 加 了 图 形 的 三 维 观 察 包 括 : (1) 视 图 定 向 观 察 例 如 轴 测 图 后 视 图 左 视 图 俯 视 图 右 视 图 和 正 视 图 ; (2) 模 型 绕 轴 定 向 旋 转, 包 括 绕 X 旋 转 绕 Y 旋 转 和 绕 Z 旋 转 ; (3) 任 意 缩 放 旋 转 平 移 操 作 ; 辅 助 操 作 设 置 是 为 了 方 便 用 户 从 不 同 角 度 观 察 物 体 下 面 以 实 例 来 说 明 论 文 的 成 果 : 图 5 为 异 形 体 仿 真 模 型 的 真 实 效 果, 依 次 来 验 证 基 于 OpenGL 的 HPGL 数 据 格 式 三 维 模 型 显 示 的 正 确 性 图 6 为 汉 字 百 异 形 体 模 型 的 仿 真 效 果 图, 其 上 下 端 面 分 别 为 黑 体 字 型 和 魏 体 字 型, 为 了 能 同 时 看 到 模 型 上 下 端 面 图 元, 仿 真 时 模 型 采 用 了 半 透 明 处 理 ; 图 7 为 与 其 想 对 应 的 异 形 体 百 字 加 工 样 例, 经 对 比 图 6 与 图 7 可 知, 仿 真 模 型 完 全 表 达 真 实 加 工 模 型, 达 到 加 工

模 型 仿 真 要 求, 满 足 实 际 加 工 需 要 (a) (b) 图 4 仿 真 模 型 显 示 窗 口 图 5 仿 真 模 型 显 示 图 图 6 异 形 体 百 字 仿 真 模 型 图 7 异 形 体 百 字 加 工 样 例 6 结 束 语 在 Visual C++6.0 开 发 环 境 中 建 立 OpenGL 图 形 显 示 窗 口 对 异 形 体 仿 真 模 型 进 行 显 示, 详 细 阐 述 了 通 过 导 入 异 形 体 模 型 上 下 两 端 面 的 二 维 图 形 格 式 HPGL 文 件, 经 过 数 据 处 理 后 进 行 三 维 异 形 体 模 型 的 建 模 方 法 实 现 了 对 两 个 二 维 数 据 的 异 形 体 模 型 的 三 维 显 示, 同 时 实 现 了 对 三 维 模 型 的 多 视 角 观 察 缩 放 等 功 能 经 过 与 真 实 加 工 模 型 的 对 比, 该 软 件 能 实 现 对 HPGL 文 件 格 式 的 异 形 体 模 型 的 三 维 显 示, 方 便 了 对 异 形 体 端 面 图 元 几 何 设 计 合 理 性 的 检 验, 能 在 异 形 体 模 型 真 实 加 工 之 前 预 测 和 得 到 工 件 形 状, 从 而 指 导 异 形 体 造 型 设 计

参 考 文 献 [1] Paul Bourke.Using HPGL as a drawing interchange media. http://www.lprng.com/distrib/resources/hpgl_short_summary.html, 1992:9 [2] 龚 道 明. 基 于 HPGL 的 EPS 快 速 成 形 技 术 [D]. 西 安 : 西 安 交 通 大 学.2006 [3] 张 香 圃, 任 乃 飞, 张 海 军. 基 于 OpenGL 和 Visual C ++ 的 数 控 机 床 仿 真 教 学 系 统 研 究 [J]. 现 代 制 造 工 程.2007(3):129~132 [4] 乔 林, 费 广 正 等. OpenGL 程 序 设 计 [M]. 清 华 大 学 出 版 社,2000 年 [5] Dave Shreiner 等 著 ; 徐 波 等 译. OpenGL 编 程 指 南 [M], 北 京 : 人 民 邮 电 出 版 社,2006 [6] Paul Martz 著 ; 邓 郑 祥 译. OpenGL 2.0 精 髓 [M], 北 京 : 人 民 邮 电 出 版 社,2006 Modeling Procedure of HPGL data Model Based on OpenGL Technology JIA Long 1, FANG Liang 1,2, CHEN Taixi 2, LIU Yanwei 2 1 School of Materials Science and Engineering,China Univercity of Mining and Technology, Xuzhou, Jiangsu (221116) 2 School of Mechanical and Electrical Engineering,China Univercity of Mining and Technology, Xuzhou, Jiangsu (221116) Abstrat The modeling method of HPGL data model using Visual C++6.0 program language and the tool of graphic function library OpenGL was introduced. After a HPGL data model is read,using OpenGL can easily render model, transform visual angle, zoom display sizes and etc; Furthermore, 3D model can be directly in OpenGL environment,in order to testify geometry design of model and forecast 3D shape of model. Keywords:HPGL data model;opengl;modeling 作 者 简 介 : 贾 龙, 男,1983 年 生, 硕 士 研 究 生, 主 要 研 究 方 向 是 EPS 热 丝 快 速 成 形 虚 拟 制 造 技 术