当前位置:首页 >> >>

C语言环境下图像演示的研究与实践_图文

C语 言 环 境 下 图像 演 示 的研 究 与 实践 
王 纪 伟  . 孙 无极   

(. 苏 盐 城技 师学 院 电气 系 , 城 2 40 ; . 京 邮 电 大学 通 信 与 信 息 丁 程 学 院 , 城 2 40 ) 1江 盐 202 2 南 盐 2 0 2 



要 : 语 言 是近 年 来在 国 内外 得 到 迅 速 推 广 应 用 的 一 种 计 算机 语 言 。 语 言在 图像 演示 方 面具  c c 有 可 移 植 性 强 、 码 效 率 高 、 用灵 活 、 用面 广 等 优 势 , 过 具 体 实 例 的 分 析 展 示 c 语 言  代 使 应 通 在 图像 演 示 方 面 简 单 灵 活 的功 效 。  

关 键 词 :C 语 言 ;图 像 演 示 ;技 术 分 析  

0 引  

言 

语 言 . 可 以不 受 限制 的实 现 任何 演 示 功 能 . 有 的计  则 所
算 机 程 序 都 是 由编 程 语 言 编 写 的 .所 以 只 要 是 图像 演 

在 当前 现 代 科 技 高 速 发 展 的 进 程 中 .越 来 越 多 的  新 事物 被 创 造 .越 来 越 多 的理 论 被 证 实 … … 而 这 些 新 

示 辅 助 软 件 可 以实 现 的 功 能 . 程 都 能 够 实 现 . 且 编  编 并
程 可 以实 现 及 其 复 杂 的 演 示 应 用 .甚 至 可 以将 多 台 电 

事 物和理论 中不少都是代价 昂贵 . 不容许有失败的 减 
少 失 败 .提 高 成 功 率 的最 佳 途 径 就 是 进 行 计 算 机 图 像  模 拟 演 示 神 舟 六 号 飞 船 的 发射 成 功 、 娥 奔 月 计 划 的  嫦 顺 利 实 施 都 是 在 不 计 其 数 的模 拟 演 示 之后 一 次 发 射 成 
功 的 .可 见 图像 演 示 在 国家 建 设 的各 个 领 域 已 经 发 挥 

脑 甚 至 是 多 台 超 级 电 脑 联 机 进 行 联 合 运 算 以演 示 及 其 
复 杂 的过 程 需 要 .这 是 普 通 的 演示 辅 助 程 序 所 无 法 做  到 的 .可 见 通 过 编 程 语 言 实 现 图像 演 示 可 以涉 及 更 广  泛 的领 域  其 次 .再 看 一 下 编 程 语 言 之 间为 什 么选 择 C语 言 

了 它 的重 要 作 用 . 而这 些 复 杂 而 高精 度 的计 算 . 是 借  正 助 于高 效 率 的 C语 言 完 成 的 。本 文 就 C语 言 环 境 下 的   图像 演 示 技 术 做 一 些抛 砖 引玉 的工 作 。  

作 为 图像 演 示 的工 具 C语 言 作 为 经 典 的编 程 语 言 , 经  历了 3 0多 年 的 时 光 . 经 相 当 的 成 熟 . 代 码 可 以 几  已 其 乎 不 用 修 改 而 直 接 在 任 何 平 台上 编 译 使 用 . C语 言 的  这 种 可 移 植 性 也 是 选 它 的原 因 之 一  我 们 上 面也 提 到  过 C语 言 是 介 于 汇 编 和 高 级 语 言 之 间 的 .所 以 C语 言 
兼 顾 了 高级 语 言 和 汇 编 语 言 .使 其 在 应 用 领 域 产 生 了 
很 多 1 1 2的效 果  +>

1 图像 演 示 技 术概 述   
图像 演 示 的 方 法 其 实 有 很 多 种 .简 单 的 说 基 本 可  以 分 为两 大类 . 类 是 使 用 编程 技术 来 实 现 ( 如 使 用  一 例

C语 言 、A I 言 等 ) B SC语 ,另 一 类 则 是 使 用 图像 演 示 辅  助程 序 所 提 供 的 功 能 ( 如 P 、l h ) 实 现 , 择  例   Fa 等 来 s 选 C语 言 来 作 为 图像 演 示 的实 现 方 法 有其 自身 的优 势 。   首先 . 我们 先 来 看 一 下这 两 大类 的 区别 : 为 图 像  作
演 示 的 重 要 工具 .图像 演 示 辅 助程 序 虽 然 可 以 帮 助 我  们 快 速 地 解 决 一 些 简 单 的 图像 演 示 .但 是 图 像 演 示 辅 

再 次 .正 如 大 家 知 道 的 图像 演 示 中 的 图 像 绘 制 也  是 非 常 耗 费 计 算 机 资 源 的 . 由于 C语 言 同 时具 有 高 级 
语 言 的成 分 和 汇 编语 言 的 功 能 .通 过 直 接 和 硬 件 打 交 

道 来 实 现 . 高 了代 码 的效 率 . 提 因而 用 C语 言 绘 制 图 形 
和动 画所 占用 的资 源 相 对 就 小 了很 多  目前 用 C语 言 

助 程 序 却 是 给 这 种 应 用 圈 定 了一 个 极 其 狭 隘 的范 围 .   其 只 能应 用 于一 些 相对 比较 简 单 的 演 示 中 如 果 当一    些 演示 需 要 大量 的 变 量 计 算 和 复 杂 的 图 形 绘 制 的 时 候  图 像 演示 辅 助 软 件 就 毫 无 用 武 之 地 了  相 对 而 言 编 程 
收 稿 E期 : 0 0 1 5 l 2 1 —1 —1  修 稿 日期 : 0 0 2 5 2 1 ~1 —1  

实 现 图像 演 示 的 领域 越 来 越 多 .特 别 是 在 计 算 机 游 戏  中 .通 常 使用 C语 言 图 形 甬数 库 来 进 入 图形 模 式 和 绘  制 各 类 图形 . 有 图形 绘 制 都 在 图形 模 式 下 进 行 . IS 所 BO   视 频 服 务 中断 1H 提 供 了 初 始 化 视 频 模 式 的 方 法 . 0 其 

作 者 简介 : 纪伟 (9 1 ) 女 , 苏盐 城 人 , 事领 域 为 基 于 c语 言 的 单 片机 开 发 和 教 学 王 18 一 , 江 从  

@  现 计 机 21.  代 算 002 1

开 发 案 铡 

/  

/  
功 能 号 为 O H 即 AH 输 入 . 过 调 用 中 断 函数 I T 61 O 通 N 8(   来 触 发 B OS视 频 中 断 凶而 调用 C语 言 绘 制 的图 形 时  I 是 0. 果 A 与 B 是 不 同 的 . 么 A 与 B 异 或 的结 果  如 那

是 1 我们 在 绘 制 图 像 时 也 可 以使 用 这 种 技 术 例 如 我   
们 先 画 一 条 红 线 .然 后 再 在 其 上 画 这 条 红 线 的 异 或 运  算 后 的 线 . 样 . 两 条 线 就 抵 消 了  这 这

必 须 将 屏 幕 设 置 为 图 形 模 式 .这 也 是 我 们 进 入 游 戏 时 
显示 器 一 般 都 要 切 换 模 式 的 原  所 在  因此 综 观 各 种 

因素 之下 .我 们 不 难 发 现 C语 言 在 图像 演 示 方 面 独 特 
的优 势 。  

③调色板技 术 。在 2 6色和 1 5 6色模式下 . 我们 的  
汁算 机 存 在 一 块 调 色 板 .也 可 以说 它 就 是 一 个 储 存 颜  色 信 息 的索 引 的 寄存 器  计 算 机 屏 幕 的 每 个 像 素都 是 
【 绿 蓝 f B  打红 RG 1i原 色 组 成 从 而 构 成 所 有 的 颜 色 , 所  谓 的 调 色 板 技 术 就 是 通 过 改 变 某 些 区 域 的 像 素 的颜 色  来 达 到 动  的 效 果 

2 C 语 言 图像 演 示 实现 方 法 的 技 术 分 析   
C语 言 作 为 程 序 界 广 泛 采 用 的 语 言 . 生 于 7 诞 0年 

代 初 . 17 在 9 5年 U I N X第 6 公 布 之 后 . 言 的 突 出  版 C语
优 点 得 到 了 广 泛 关 注 .并 南 美 同 电 话 电报 公 司f T ) A &T 

④ 托屏技术 , 拉屏 技术可分为横 向拉屏 、 向拉屏  纵
和 全 方 向 拉 屏  种  拉 屏 技 术 实 际 一  是对 双 缓 冲技 术 
的改 进 .就 是 将 屏 幕 中显 示 的 和 未  示 的 构 成 一 个 大  的缓 存 区域 . 图像 需 要 移 动 时 只 需 要 将 屏 幕 移 动 . 当 然  后 在 移 动 后 的空 白 区域 移 入 需 显 示 的 部 分 打个 比方 .   将 一 张 地 冈 平 铺 在 你 的 显示 屏 上 . 当然 只有 一 部 分 会 

贝 尔 实 验 室 于 17 年 正 式 发 表 . 由 美 同 国 家 标 准 学  98 后
会 在 此 基 础 上 制 定 了 一 个 C语 言 标 准 . 于 1 8 9 3年 发  表  C语 言 既 有 高 级 语 言 的 优 点 . 具 有 低 级 语 言 的许  又 多 特 点 ,被 广 泛 应 用 于 各 个 领 域 ,其 中 著 名 的 U X、 NI  

Ln x等 很 多 代 码 都 是 基 于 C语 言 编 写 的 . lnx系  iu 在 Ju j 统 中在 图 形 界 面 也 得 到 了 很 好 的体 现  我 们 所 说 的 图 像 演 示 大 体 可 分 为 两 大 块 .一 为 数  据 计 算 . 为强 大 功 能 的 C语 言 . 作 自然 是 很 简 单 就 可 实  现 的 : 一 块 则 为 演 示 动  的 显示 层 的 制 作 . 下 来 我  另 接
们 重 点 说 一 下 C语 言 制 作 演 示 动 I 技 术 . 面的 C语 言 绘  制动 i  的技 术 主 要 可分 为 四种 .   .

在 屏 幕 的 区 域 . 他 部 分 已经 超  了屏 幕 部 分 当你 想  其
要 屏 幕 上 的地 图 的 图 像 显 示 偏 左 一 点 的位 置 .那 么 你 

只需 要 将 地 图 往 右 拉 动 .这 样 左 边 的 末 在 屏 幕 上 的 部 
分 就 填 充 到 了屏 幕 上 了 

3 利 用 C语 言 实 现 图 像 演 示 的 实 现   
让 我 们 来 通 过 一 个 简 单 的例 子 .来 了 解 具 体 是 如  何 制 作 演示 程 序 的 根 据 具 体 制 作 的 图像 要 求 . 般 演  一 示 程 序制 作 可 以 分 为 四步 :  

①重 I  技术 。 所谓重  技术 , 就是在屏幕 _绘 制 f j   I j  
图像 后 将 其 擦 除 . 重 新  下 的 一 个 J 面 重 画技 术 又  并 田 i 可 分 为 直 接 重 J 、 缓 冲 、 替 换 和 多缓 冲  直 接 重 画    双 贞 就 是 不 断 直 接 重  屏 幕 . 分 为 全 屏 重 画 和 局 部 重  . 可  
全 屏 重 画 H 整 个 屏 幕 绘 制 完 成 后 停 留 到 需 要 下 一 Ii I J f 面  I i 时 将 其 清 屏 . 后 重 新 绘 制 整 个 屏 幕 . 足 作 为 演 示 动  然 但 画 . 往 里 面并 不 足 所 有 的 图像 都 是 一 直 改 变 的 . 以  往 所 只 对 要 动 的 区 域 进 行 重 面 . 就 是 局 部 重 J 所 以在 使  这   用 中我 们 很 少 使 用 全 屏 重 J .更 多 的 使 用 的是 局 部 重   

①构思 演示程 序所要产生的界面 在这 一步中 . 大 
家 需 要 考 虑 的是 图像 的 一 些 外 在 【 素 .也 即 是 总 体 分  大 1
析 像 我 们 这 里 这 个 演 示 程 序 就 比较 简单 . 是 首 先 是  就 需 要 一 个 五 角 星 . 后 置 于 屏 幕 中 间 . 后 在 周 围产 生  然 然
闪 闪 的光 芒  、  

②对 图像 的拆分及细 化 .就是那些 图像 具体 陔干 
什 么 . 么 实 现  以本 例 来 说 . 角 星 的绘 制 可 以 根 据  怎 五

面  C语 言 图 形 函数 库 为 我 们 提 供 了用 于 保 存 和 重 画 

屏 幕区域 的函数 gt ae  ̄ ui g( 提供 了内存分  e m g0 l t e1 i p ma .
配 函 数 ma1c 或 fr l 0 申请 内存 窄 间  双 缓 冲  1 0 amal 来 o ( 技 术 则 是 在 以上 的 基 础 上 进 行 的 一 种 发 挥 .也 就 是 将 

五 角 星 的 十个 转 折 点 以及 一个 中心 来 J m 五 角 星 的轮  l 玎 i 廓 , 后 对 其 进 行 颜 色 的填 充 . 其 呈 现 立 体 感  闪 闪 然 使  
发 光 的效 果 可 以 通 过 画 出不 断 变 化 的 以 中心 点 为 圆心 

下 一 个 页 面 所需 的 图 像 提 前 l 好 . 保 存  当需 要 调 用  田 j 并 下 一 画 面 时 直 接 南保 存 的 图像 替 换 屏 幕 中需 要 替 换 的  内 容 .并 在 后 台进 行 下 一 ㈣ 面 的绘 制 贞 替 换 和 多 缓 冲 
也 是 在 之 前 的 基 础 上 进 行 的扩 展 

的 放 射 线 ( 射线 的 丽 个 端 点 在 两 个 同心 圆 的 端 点 上 1 放  
来 实现 。  

③对 要实 现的 图像 进行 数据 计算 方面 的考虑 . 也 
就 是 绘 制 图像 的 方 法  本 例 中 的 五 角 星 的 中心 点 的 坐  标 只 要 获 取 屏 幕 的最 大 宽 度 和 高 度 并 除 以 2即 可 . 另  外 十 个 点 是 平 均 分 布 在 以 中 心点 为 圆 心 的 两 个 同 心 圆 

②异 或技术 , . 在逻辑运算 中, A和 B进行异或运  当
算 时 . 果 A 与 B是 相 同 的 。 么 A 与 B异 或 的结 果  如 那

现 计 机 21 1 @  代 算 o02 . 

开 发 案 例 
— — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —   — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

/  
_ / 

/  

将 不 同 的 部 分 放 在 不 同 的 函 数 里 .然 后 通 过 主 函数 中 

的 许 多 特 点 , 其 功 能 丰 富 、 达 能 力 强 、 用 灵 活 方  以 表 使 便 、 用面广 、 应 目标 程 序 效 率 高 、 移 植 性 好 等 优 势 , 可 被  广 泛 地 应 用 于计 算 机 应 用 的各 个 领 域 。C语 言 已 经从  方 方 面 面 丰 富 了 我们 的 计 算 机 世 界 .我 们 有 理 r 相 信  b
C语 言 将 会 在 更 广 阔 的领 域 发 挥 其 不 可 替 代 的 作 用 。  
参 考 文 献 

调用 . 样 不仅 能过使程 序容 易看懂 , 构 井井 有条 . 这 结  
而且 当 程 序 m 错 以 及 演 示 需 要 调 整 时 能 够 快 速 定 位 .   并 能 最 快 地 进 行 修 改  本 程 序 所 进 行 演示 时 没 有 用 到  任 何 的 图像 . 部 是 函数 计 算 绘 制 的 . 用 了线 条 和 填  全 只 充 效 果 就 完 成  程 序 的演 示 罔 像 的绘 制 .程 序 以及 制 

作思路简单清晰 明了  

4 结  

语 

[] 蓉 , 建 华 . 1 朱 郑 C语 言实现 动 l 技 术 的 探 讨 [ ] 电脑 知 识  田 i J.
与 技 术 ,0 5 3 ) 2 0 (5 

C语 言 既 具 有 高 级 语 言 的优 点 .又 具 有 低 级 语 言 

【】 浩 强 . 2谭 C程 序 设 计 . 华 大 学  版 社  清

Re e c   n   a t e o  m a e Sh ws i h   L g a e s ar h a d Pr c i   fI g   o  n t e C  an u g   c  
En i m e t vr on n 
WA G J w i N  i e -   , S N Wu j    U   Ii 。

( . n tueo  e tia, n h n   e h iinColg , n h n  2 4 0 ; 1 Isi t  f cr l Ya c e gT c nca   l e Ya c e g 2 0 2  t El c e

2 Istt o o u iao n nom t nE g er g N ni   nvri f ot adT l o u iao s Y n hn  2 0 2  .ntue f mm nct nadIfr ai   ni ei , aj gU i syo  s n  e cmm nc tn, a ce g 2 4 0 ) i   C i o n n n e t P s e i
Ab t c :  a g a e a  o   n   b o d i  e e ty a sh v   e n r p d y p o t d t e u e o    o u — s r t C ln u g   t me a d a r a  n r c n  e r  a eb e  a i l  r mo e  h   s   f c mp t a h a  
e  a u e rlng ag ,C a gu g  n te i g   a   mo tae   to   ra lt od   fii n y he u e ln a e i h  ma e h sde nsr td sr ngpo tbii y,c e efc e c ,t   s   o   e i l ,a  he a a t g s o     d  rng  o   p i ai n ,t r ug  he a lss o   p cfc ff x b e nd t   dv n a e   fa wi e a e f a plc to s h o h t   nay i  fs e i   l i e a p e  ho  h   fe tv n s   fsmpl  nd fe bl  fC a g g  n t e i a ede x m l ss wst e ef ci e e so  i e a   xi e o   l n ua e i h  m g   mo. l  

K y r s C L n u g ;h a e De ; e h o o y An l ss e wo d :   a g a e n g   mo T c n l g   a y i 

( 接第8 上 5页 )  

De in o  n o ma in Ex h g   a f m  sg   fIf r t   c an e Plt   o Or
o   i   e Man g fW   l   l  di f a emen n o m a i   s em  tI f r t   on Sy t
LI Hui , ZHANG  i U  Gu 
( l g  fS in e, e t lS uh Unvri  fF rsr Col eo ce e C nr   o t  iest o  oety& T c n lg C a g h  4 0 0   e a y e h oo y, h n s a 1 0 4)
Ab t c :I   r e   o e s r  h   f e e ti f r r n c mmu i ai n c a n l o  h   h l e r s u c s s r t n o d r t  n u e t e ef in   n )mai   o a i i   o n c t   h n e  f t e wit f   e o r e   o i
ma a e n , e i n   n   e e o s te if r t n e c a g   l t r Ba e   n AS   c n q e n g me t d sg s a d d v l p  h  n o ma i   x h n e p af m. s d o   P t h i u , o o e  
Or ce daa s   n   n e n ttc a l  tba e a d I t r e e hniue h   l t r i cude  h e   an u to  mo e s e — q ,t e p af m  n l o st r e m i f nci n d l:g n   e a if r tou r l n o ma i  ma a e e t r ph c n o ma in n g m n ,g a i i f r to  m a a e e t n g m n ,m e s g  m a a e e t sa e n g m n .As n  a   i p ra   a to  h   l ie ma g me  nfr ain y t m ,no  n y r a ie  he pu lc to   m o tntp r  ft e wi f  na e nti o m to  s se dl to l  e lz s t   b ia in o  ro  if r to fva ius n o ma in,bu  lo t   r s ison o n o m ain bewe n t  ma ges by i u   ta s  he tan m s i   fif r to   t e  he na r   sm —

lt g t e ta s si n mo e o   e e mals se   a i  h  r n miso   d   f h   — i y t m. n t   Ke wo d : i l e;Ma a e n n o mai n S s m ;I fr t n P af r   y rs W l i d f n g me t fr t   y t I o e n o mai   lt m o o

现 计 代 算机 211 @  0 .  02