欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C 语言图形编程.pdf

    • 资源ID:89833945       资源大小:8.80MB        全文页数:75页
    • 资源格式: PDF        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C 语言图形编程.pdf

    C 语 言 图 形 编 程(一、字 符 屏 幕)日 期:2004-12-25作 者:未 知 来 源:未 知 一、屏 幕 操 作 函 数 1.clrscr。清 除 字 符 窗 口 函 数 2.window。字 符 窗 口 函 数 3.gotoxy。光 标 定 位 函 数 4.clre o l()清 除 光 标 行 尾 字 符 函 数 5.insline()插 入 空 行 函 数 6.delline()删 除 一 行 函 数 7.g e tte xt()拷 进 文 字 函 数 8.putte xt()拷 出 文 字 函 数 9.movetext()移 动 文 字 函 数 二、字 符 属 性 函 数 10.textm ode()文 本 模 式 函 数 11.highvideo()高 亮 度 函 数 12.Iowvideo()低 亮 度 函 数 13.normvideo(void);14.textcolor()文 本 颜 色 函 数 15.te x ta ttr()文 本 属 性 函 数 16.textbackground()文 本 背 景 函 数 三、屏 显 状 态 函 数 17.w herex()光 标 处 x 坐 标 函 数 18.w herey()光 标 处 y 坐 标 函 数 19.gettextinfo()获 取 文 本 窗 口 信 息 函 数 在 Borland 6+里 面 提 供 了 字 符 屏 幕 和 图 形 函 数。字 符 屏 幕 的 核 心 是 窗 口(W indow),它 是 屏 幕 的 活 动 部 分,字 符 输 出 或 显 示 在 活 动 窗 口 中 进 行。窗 口 在 缺 省 时,就 是 整 个 屏 幕。窗 口 可 以 根 据 需 要 指 定 其 大 小。同 样,对 图 形 函 数 的 操 作,也 提 供 了(Viewport)。也 就 是 说 图 形 函 数 的 操 作 都 是 在 视 口 上 进 行。图 形 视 口 与 字 符 窗 口 具 有 相 同 的 特 性,用 户 可 以 在 屏 幕 上 定 义 大 小 不 同 的 视 口,若 不 定 义 视 口 大 小,它 就 是 整 个 屏 幕。窗 口 是 在 字 符 屏 幕 下 的 概 念,只 有 字 符 才 能 在 窗 口 中 显 示 出 来,这 时 用 户 可 以 访 问 的 最 小单 位 为 一 个 字 符。视 口 是 在 图 形 屏 幕 状 态 下 的 概 念,文 本 与 图 形 都 可 以 在 视 口 上 显 示,用 户 可 访 问 的 最 小 单 位 是 一 个 像 素(像 素 这 一 术 语 最 初 用 来 指 显 示 器 上 最 小 的、单 独 的 发 光 点 单 元。然 而 现 在,其 含 义 拓 宽 为 指 图 形 显 示 器 上 的 最 小 可 访 问 点)。字 符 和 图 形 状 态 下,屏 幕 上 的 位 置 都 是 由 它 们 的 行 与 列 所 决 定 的。有 一 点 须 指 出:字 符 状 态 左 上 角 坐 标 为(1,1),但 图 形 左 上 角 坐 标 为(0,0)。了 解 字 符 屏 幕 和 图 形 函 数 与 窗 口 和 视 口 的 关 系 是 很 重 要 的。例 如,字 符 屏 幕 光 标 位 置 函 数 gotoxy()将 光 标 移 到 窗 口 的 x,y位 置 上,这 未 必 是 相 对 于 整 个 屏 幕。下 面 介 绍 常 用 的 几 类 字 符 屏 幕 函 数 的 功 能 用 途、操 作 方 法 及 其 例 行 程 序。一、屏 幕 操 作 函 数 编 写 程 序 绘 图 经 常 要 用 到 对 字 符 屏 幕 进 行 操 作。例 如,在 往 屏 幕 上 写 字 符 之 前,首 先 要 将 屏 幕 清 除 干 净。又 如,有 时 需 要 在 屏 幕 上 多 处 写 上 肉 中 刺 样 的 字 符 内 容,这 时 最 好 用 屏 幕 拷 贝 来 高 效 率 地 完 成 这 一 任 务。对 这 些 操 作,Borland 6+提 供 了 一 系 列 字 符 屏 幕 操 作 函 数 来 实 现。1.clrscr()清 除 字 符 窗 口 函 数 功 能:函 数 clrscr。清 除 整 个 当 前 字 符 窗 口,并 且 把 光 标 定 位 于 左 上 角(1,1)处。用 法:此 函 数 调 用 方 式 为 void clrscr(void);说 明:括 号 中 v o id表 示 无 参 数。该 函 数 相 应 的 头 文 件 为 conio.h返 回 值:无 例:使 用 这 个 函 数 的 例 子 见 4.clreol()函 数 的 实 例 中。2.window。字 符 窗 口 函 数 功 能:函 数 window。用 于 在 指 定 位 置 建 立 一 个 字 符 窗 口。用 法:此 函 数 调 用 方 式 为 void window(int leftjnt top,int right,int bottom);说 明:函 数 中 参 数 left,top为 窗 口 左 上 角 坐 标;right,bottom为 其 右 下 角 坐 标。若 有 一 个 坐 标 是 无 效 的,则 window。函 数 不 起 作 用。一 旦 该 函 数 调 用 成 功,那 么 所 有 定 位 坐 标 都 是 相 对 于 窗 口 的,而 不 是 相 对 于 整 个 屏 幕。但 是 建 立 窗 口 所 用 的 坐 标 总 是 相 对 整 个 屏 幕 的 绝 对 坐 标,而 不 是 相 对 当 前 窗 口 的 相 对 坐 标。这 样 用 户 就 可 以 根 据 各 种 需 要 建 立 多 个 互 不 嵌 套 的 窗 口。此 函 数 的 头 文 件 为 conio.h0返 回 值:无 例:调 用 这 个 函 数 的 实 现 例 见 3.gotoxy()函 数 的 例 子 中。3.gotoxy()光 标 定 位 函 数 功 能:函 数 gotoxy()将 字 屏 幕 上 的 光 标 移 到 当 前 窗 口 指 定 的 位 置 上。用 法:这 个 函 数 调 用 方 式 为 void gotoxy(int x,int y);说 明:括 号 里 x,y是,光 标 定 位 的 坐 标,如 果 其 中 一 个 坐 标 值 无 效(如 坐 标 超 界),那 么 光 标 不 会 移 动。此 函 数 在 字 符 状 态(有 时 称 为 文 本 状 态)下 经 常 用 到,其 相 应 的 头 文 件 为 conio.h返 回 值:无 例:下 面 程 序 建 立 两 个 窗 口,然 后 在 窗 口 里 显 示 字 符,字 符 的 位 置 是 调 用 该 函 数 确 定 的。#include conio.hvoid border(int startx.int starty.int endxjnt endy)(register int i;gotoxy(1,1);for(i=0;i=endx-startx;i+)putch(-);gotoxy(1,endy-starty);for(i=0;i=endx-startx;i+)putch(-);for(i=2;i=endy-starty;i+)gotoxy(1,i);putch(l);gotoxy(endx-startx+1,i);putch(l);)main()(void border(int,int,int,int);clrscr();window(6,8,38,12);border(6,8,38,12);gotoxy(2,2);printf(window 1);window(8,16,40,24);border(8,16,40,24);gotoxy(3,2);printf(window 2);getch();)4.clre o l()清 除 光 标 行 尾 字 符 函 数 功 能:函 数 clreol。在 当 前 字 符 窗 口 中 清 除 从 光 标 位 置 到 行 尾 的 所 有 字 符,而 光 标 位 置 保 持 不 变。用 法:它 的 调 用 方 式 为 void clreol(void);说 明:此 函 数 的 相 应 头 文 件 为 conio.h返 回 值:无 例:程 序 中 使 用 了 函 数 clreol()和 clrscr()#include conio.hvoid main()(register int i;gotoxy(6,8);printf(This is a test of the clreol()function.);getch();gotoxy(6,8);clreol();for(i=0;i20;i+)printf(Hellon);getch();clrscr();)5.insline()插 入 空 行 函 数 功 能:函 数 insline()插 入 一 空 行 到 当 前 光 标 所 在 行 上,同 时 光 标 以 下 的 所 有 行 都 向 下 顺 移 一 行。用 法:此 函 数 的 调 用 方 式 为 void insline(void);说 明:该 函 数 只 用 于 文 本 方 式,并 且 在 当 了 符 窗 口 才 有 效。这 个 函 数 的 对 应 头 文 件 是 conio.h返 回 值:无例:程 序 给 出 了 insline()函 数 的 用 法。#include conio.h*void main()(registser int i;clrscr();for(i=1;i24;i+)(gotoxy(1,i);printf(This is line%dn,i);)getch();got oxy(1,10);insline();getch();)6.delline()删 除 一 行 函 数 功 能:函 数 delline()删 除 当 前 窗 口 内 光 标 所 在 行,同 时 把 该 行 下 面 所 有 行 都 上 移 一 行。用 法:此 函 数 调 用 方 式 为 void delline(void);说 明:注 意,如 果 当 前 窗 口 小 于 整 个 屏 幕,那 么 该 函 数 只 影 响 到 窗 口 内 的 字 符。这 个 函 数 相 应 的 头 部 文 件 是 conio.h返 回 值:无 例:先 在 屏 幕 上 显 示 1 6行 文 字,然 后 删 除 第 4 行#include conio.hvoid main()(register int i;clrscr();for(i=0;i16;i+)printf(line%dn,i);getch();gotoxy(1,4);delline();getch();7.g e tte xt()拷 进 文 字 函 数 功 能:函 数 gettext()用 于 文 本 状 态 下 将 屏 幕 上 矩 形 域 内 的 文 字 拷 进 内 存。用 法:该 函 数 调 用 方 式 为 int gettext(int leftjnt topjnt right,int bottom,void*buffer);说 明:函 数 中 参 数 left,top为 矩 形 区 域 的 左 上 角 坐 标,right,bottom为 其 右 下 角 坐 标,这 些 坐 标 是 屏 幕 的 绝 对 坐 标,不 是 窗 口 的 相 对 坐 标。buffer指 针 必 须 指 向 一 个 足 够 保 存 该 矩 形 域 内 文 字 的 内 存。所 用 内 存 大 小 按 下 式 计 算:点 头 用 字 节 数=矩 形 战 内 的 行 数 x 矩 形 域 的 列 数 x 2这 里 将 行 数 乘 以 列 数 再 乘 以 2 的 原 因 是 保 存 屏 幕 上 每 个 字 符 要 用 两 个 字 节 存 储 单 元,一 个 字 节 存 储 单 元 存 放 字 符 本 身,而 另 一 个 存 放 其 属 性。此 函 数 相 应 的 头 文 件 是 con io.h返 回 值:若 函 数 调 用 成 功 则 返 回 1,否 则 返 顺 0。例:把 屏 幕 左 上 角 点(1,1)和 右 下 角 点(10,10)的 区 域 拷 贝 到 b u f指 向 的 内 存 中 去。buf=(char*)malloc(10*10*2);if(!buf)gettext(1,1,10,10,buf);8.p u tte xt()拷 出 文 字 函 数 功 能:函 数 puttext()把 先 前 由 gettext。保 存 到 buffer指 向 的 内 存 中 的 文 字 拷 出 到 屏 幕 上 一 个 矩 形 区 域 中。用 法:此 函 数 调 用 方 式 为 int putt ext(int leftjnt topjnt right,int bottom,void*buffer);说 明:函 数 里 left,top为 给 出 的 屏 幕 上 矩 形 区 域 的 左 上 角 点,right,bottom为 其 右 下 角 点,其 坐 标 是 用 屏 幕 的 绝 对 坐 标,而 不 是 用 窗 口 的 相 对 坐 标。该 函 数 相 应 的 头 文 件 为 conio.h返 回 值:函 数 调 用 成 功 返 回 值 为 1,否 则 返 回 0。例:屏 幕 上 某 个 区 域 内 容 拷 进 b u f指 向 的 内 存 中,然 后 又 将 这 些 文 字 拷 出 到 屏 幕 上 新 位 置。buf=(char*)malloc(10*10*2);gettext(1,1,10,10,buf);puttext(16,16,30,30,buf);9.m ovetext()移 动 文 字 函 数 功 能:函 数 movetext。将 屏 幕 上 一 个 矩 形 区 域 的 文 字 移 到 另 一 个 区 域 上。用 法:该 函 数 调 用 方 式 为 int movetext(int leftjnt topjnt right,int bottom,int newleftjntnewt op);说 明:上 面 left,top为 矩 形 区 域 上 角 坐 标,right,bottom为 其 右 下 角 坐 标,newleft,newright为 移 动 到 区 域 左 上 角 坐 标。这 些 坐 标 是 屏 幕 的 绝 对 坐 标,不 是 窗 口 的 相 对 坐 标。若 要 把 屏 幕 上 一 段 文 字 移 到 屏 幕 的 另 一 位 置,那 么 使 用 movetext()函 数 比 用 gettext()然 后 再 用 puttext。效 率 更 高。此 函 数 相 应 的 头 文 件 是 conio.h返 回 值:如 果 有 一 个 以 上 坐 标 无 效,那 么 函 数 返 回 值 为 0,否 则 返 回 1。列:把 屏 幕 左 上 角 点(8,8),右 下 角 点(20,20)的 矩 形 区 域 文 字 移 动 到 左 上 角 点(10,10)的 位 置 上:movetext(8,8,20,20,10,10);10.textm ode()文 本 模 式 函 数 功 能:函 数 textmode。针 屏 幕 设 置 为 文 本 模 式(或 者 说 字 符 状 态)。用 法:函 数 调 用 方 式 为 void textmode(int mode);说 明:参 数 mode必 须 为 表 1-2中 所 示 的 模 式 之 一 以 用 模 式 名(符 号 值),也 可 以 用 其 等 价 的 整 数 值。表 1-2文 本 模 式 模 式 名(符 号 值)等 价 整 数 值 说 明 BW40 0 4 0列 黑 白 C40 1 4 0列 彩 色 BW80 2 8 0列 黑 白 C80 3 8 0列 彩 色 MONO 7 8 0列 单 色 LASTMODE-1 上 次 模 式 调 用 该 函 数 后,屏 幕 复 位,并 且 所 有 字 符 的 属 性 恢 复 其 缺 省 值。此 函 数 对 应 的 头 文 件 是 conio.h返 回 值:无 例:把 屏 幕 设 置 为 8 0列 彩 色 模 式 textmode(C80);二、字 符 属 性 函 数 用 户 可 以 设 置 字 符 显 示 的 高 亮 度 或 低 亮 度 的 写 的 符 闪 烁 及 其 背 景 颜 色 等。具 有 这 些 操 作 的 函数 称 为 字 符 属 性 函 数。除 了 仅 支 持 单 模 式 和 单 色 的 显 示 卡 外,字 符 属 性 函 数 适 用 于 其 余 所 有 的 显 示 卡。11.highvideo。高 亮 度 函 数 功 能:函 数 highvideo。设 置 屏 幕 为 高 亮 度 显 示。用 法:此 函 数 调 用 方 式 为 void highvideo(void);说 明:调 用 该 函 数 后,写 到 屏 幕 上 的 字 符 是 高 亮 度 的。此 函 数 只 适 用 于 文 本 模 式 状 态(或 说 字 符 屏 幕 状 态)。这 个 函 数 对 应 的 头 文 件 为 conio.h返 回 值:无 例:设 置 屏 幕 显 示 为 高 亮 度 的。highvideo();12.Iowvideo()低 亮 度 函 数 功 能:函 数 lowvideo。设 置 屏 幕 为 低 亮 度 显 示。用 法:该 函 数 调 用 方 式 为 void lowvideo(void);说 明:调 用 该 函 数 后,此 时 写 到 屏 幕 上 的 字 符 是 低 亮 度 的。这 个 函 数 只 适 用 于 文 本 模 式 状 态(或 说 字 符 屏 幕 状 态)。此 函 数 相 应 的 头 文 件 是 conio.h返 回 值:无 例:设 置 屏 幕 显 示 为 低 亮 度 的 lowvideo();13.normvideo(void);功 能:函 数 norm vide)设 置 屏 幕 为 正 常 亮 度 显 示。用 法:这 个 函 数 调 用 方 式 为 void normvideo(void);说 明:调 用 该 函 数 后,此 时 写 到 屏 幕 上 的 字 符 是 正 常 亮 度 的,该 函 数 只 适 用 于 文 本 模 式 状 态(或 说 字 符 状 屏 幕 状 态)。此 函 数 相 应 的 头 文 件 为 conio.h返 回 值:无 例:设 置 屏 幕 显 示 为 正 常 亮 度。normvideo();14.textcolor()文 本 颜 色 函 数 功 能:函 数 textcolor()设 置 字 符 屏 幕 下 文 本 颜 色(或 字 符 颜 色),它 也 可 以 用 于 使 字 符 闪 烁。用 法:这 个 函 数 调 用 方 式 为 void textcolor(int color);说 明:函 数 中 参 数 color的 有 效 值 可 取 表 1-3中 的 颜 色 名(即 宏 名)或 等 价 值。表 1-3颜 色 名 与 等 价 值 名 等 价 值 含 义 BSCK 0 黑 BLUE 1 蓝 GREEN 2绿 CWkN 3 青 RED 4 红 MAGENTA 5 洋 红 BROWN 6 棕 LIGHTGRAY 7 淡 灰 DRAKGRAY 8 深 灰 LIGHTBLUE 9 淡 蓝 LIGHTGREEN 10 淡 绿 LIGHTCYAN 11 淡 青 LIGHTRED 12 淡 红 LIGHTMAGENTA 13 淡 洋 红 YELLOW 14 黄 WHITE 15 白 BLINK 128闪 烁 textcolor()函 数 执 行 后,只 影 响 其 后 输 出 探 险 符 颜 色,而 不 改 变 已 经 在 当 前 屏 幕 上 的 其 它 字 符 颜 色。显 然,如 果 需 要 输 出 的 字 符 闪 烁,只 要 将 函 数 中 参 数 co lo r取 为 BLINK即 可,如 果 要 使 字 符 带 颜 色 闪 烁,就 必 须 将 所 选 的 颜 色 值 与 128作“或”运 算。此 函 数 相 应 的 头 文 件 是 conio.h返 回 值:无 例:下 面 程 序 段 中 第 一 条 语 句 使 输 出 的 字 符 闪 烁,第 三 条 语 句 使 字 符 输 出 为 经 色 同 时 闪 烁:textcolor(BLINK);printf(hello);textcolor(RED|BLINK);15.te x ta ttr()文 本 属 性 函 数 功 能:函 数 textattr()用 于 设 置 文 本 属 性,即 字 符 背 景 颜 色、字 符 本 身 颜 色 和 字 符 闪 烁 与 否。用 法:函 数 调 用 方 式 为 void textattr(int attribute);说 明:设 置 字 符 背 景 颜 色 属 性 字 节 的 最 简 单 方 法 是,用 所 选 的 背 景 颜 色 值 乘 以 1 6再 与 字 符 颜 色 值 作 按 位 或(OR)运 算。例 如 需 要 红 色 背 景、绿 色 字 符,就 设 置 成 RED*16|GREEN,若 还 要 字 符 闪 烁,就 把 背 景 颜 色 值、字 符 颜 色 值 与 闪 烁 值 一 起 按 位 作 或 运 算。如 蓝 背 景、黄 字 符 且 闪 烁,就 设 置 成 为:YELLO|128|BLUE*16第 0 位 用 于 设 置 字 符 颜 色。此 函 数 相 应 的 头 文 件 为 conio.h返 回 值:无 例:设 置 背 景 为 蓝 色、字 符 为 红 色 并 且 字 符 闪 烁:textattr(RED|128|BLUE*16);16.textbackground()文 本 背 景 函 数 功 能:函 数 textbackground()设 置 字 符 屏 幕 下 文 本 背 景 颜 色(或 字 符 背 景 颜 色)。用 法:此 函 数 调 用 方 式 为 void textbackground(int bcolor);说 明:参 数 b 8 1 0 r的 有 效 值 取 表 1-4背 景 颜 色(即 宏 名)或 等 价 值。表 1-4 背 景 颜 色 与 等 价 值 背 景 颜 色 等 价 值 含 义 BLACK 0 黑 BLUE 1 蓝 GREEN 2 绿 CWN 3 青 RED 4 红 MAGENTA 5 洋 红 BROWN 6 棕 调 用 该 函 数 只 影 响 后 续 写 的 字 符 背 景 颜 色,而 不 改 变 当 前 显 示 在 屏 幕 上 的 字 符 背 景 颜 色。这 个 函 数 对 应 的 头 文 件 是 conio.h返 回 值:无 例:设 置 文 本 背 景 颜 色 为 蓝 色:t extbackg round(BLUE);三、屏 显 状 态 函 数 这 里 提 供 三 个 在 文 本 模 式 下 屏 幕 显 示 状 态 的 函 数 17.w herex()光 标 处 x 坐 标 函 数 功 能:函 数 wherex()返 回 当 前 窗 口 中 光 标 处 横 向 坐 标。用 法:此 函 数 调 用 方 式 为 int wherex(void);说 明:这 个 函 数 调 用 无 参 数,其 对 应 的 头 文 件 是 conio.h返 回 值:函 数 调 用 成 功,返 回 光 标 处 x 坐 标 值。例:调 用 这 个 函 数 的 实 例 见 18.wherey()函 数 的 例 中。18.w herey()光 标 处 y 坐 标 函 数 功 能:函 数 wherey()返 回 当 前 窗 口 中 光 标 处 纵 向 坐 标。用 法:该 函 数 调 用 方 式 为 int wherey(void);说 明:此 函 数 调 用 无 参 数,其 相 应 的 头 文 件 是 conio.h返 回 值:函 数 调 用 成 功,返 回 光 标 处 y 坐 标 值。例:调 作 函 数 wherex()与 wherey(),返 回 当 前 光 标 处 x 坐 标 与 y 坐 标,并 赋 给 整 型 变 量 xpos,ypos,int xpos.ypos;xpos=wherex();ypos=wherey();19.gettextinfo()获 取 文 本 窗 口 信 息 函 数 功 能:函 数 gettextinfo。获 取 当 前 文 本 窗 口 信 息,并 存 放 在 实 参 结 构 中。用 法:函 数 调 用 方 式 为 void gettextinfo(struct text-info*info);说 明:函 数 中 参 数 in fo为 struct text-info结 构 型 指 针,struct text-info结 构 在 此 函 数 相 应 的 头 文 件 中 定 义 为:struct text-infounsigned char winleft;/窗 口 左 上 角 x 坐 标 unsigned char wintop;/窗 口 左 上 角 y 坐 标 unsigned char winright;/窗 口 右 下 角 x 坐 标 unsigned char winbottom;/窗 口 右 下 角 y 坐 标 unsigned char attribute;/文 本 属 性unsigned char normattr;/正 常 属 性 unsigned char currmode;/当 前 屏 显 模 式 unsigned char screenhight/文 本 窗 口 高 度(以 行 数 计)unsigned char screenwidth;/文 本 窗 口 宽 度(以 字 符 个 数 计)unsigned char curx;/光 标 处 x 坐 标 unsigned char cury;/光 标 处 y 坐 标);记 住,调 用 函 数 gettextinfo()时,要 传 递 struct text-info结 构 型 指 针 或 该 结 构 的 首 地 址,不 要 传 递 结 构 变 量 本 身。这 个 函 数 对 应 的 头 文 件 是 conio.h返 回 值:返 回 文 本 窗 口 角 点 坐 标、高 宽 度、文 本 属 性 等 值,并 存 放 在 info所 指 向 的 结 构 变 量 中。例:程 序 语 句 说 明 如 何 正 确 调 用 gettextinfo。函 数:struct text-info win-status;gettextinfo(&win-status);C语 言 图 形 编 程(二、图 形 显 示)日 期:2004-12-25作 者:未 知 来 源:未 知 一、确 定 显 示 卡 二、选 择 显 示 模 式 三、图 形 显 示 20.detectgraph()显 示 卡 检 测 函 数 21.initgraph()图 形 初 始 化 函 数 22.getdrivername()获 取 图 形 驱 动 程 序 名 的 指 针 23.getgraphmode()获 取 图 形 模 式 函 数 24.getmoderange。获 取 模 式 值 范 围 函 数 25.getmaxmode()获 取 最 大 显 示 模 式 函 数 26.getmodename。获 取 显 示 模 式 名 函 数 27.graphdefaults()图 形 设 置 复 位 缺 省 值 函 数 28.setgraphmode()设 置 图 形 模 式 函 数 29.restorecrtmode。恢 复 文 本 显 示 模 式 函 数 30.graphresult()图 形 操 作 结 果 函 数31.grpaherrormsg()图 形 错 误 信 息 函 数 32.setgraphbufsize。设 置 图 形 缓 冲 区 大 小 函 数 33.setactivepage()设 置 可 输 出 显 示 页 函 数 34.setvisualpage()设 置 可 见 显 示 页 数 35.closegraph。关 闭 图 形 模 式 函 数 一、确 定 显 示 卡 微 机 系 统 显 示 部 分 由 显 示 器(mordtor)和 显 示 卡(adapter)两 部 分 组 成。显 示 器 是 独 立 于 主 机 的 一 种 外 部 设 备,显 示 卡 或 称 显 示 适 配 卡,也 有 的 称 图 形 卡,是 插 在 主 机 上 的 一 块 电 路 板。但 也 有 的 显 示 卡 与 主 机 板 设 计 在 一 起。显 示 卡 包 括 寄 存 器 组、存 储 器 和 控 制 电 路 三 大 部 分。其 中 存 储 器 又 包 括 显 示 RAM和 ROM BIOS机 部 分,微 机 对 显 示 屏 幕 的 所 有 操 作 都 是 通 过 显 示 卡 来 实 现 的。因 此 要 进 行 图 形 显 示,苜 先 要 确 定 计 算 机 上 安 装 的 是 何 种 显 示 卡。一 种 方 法 是 询 问 计 算 机 或 终 端 使 用 者,确 定 将 要 使 用 的 显 示 卡 类 型。这 种 方 法 很 难,因 为 甚 至 专 业 程 序 员 也 不 总 是 能 确 定 他 正 在 使 用 什 么 样 的 硬 件。另 一 种 方 法 是 用 软 件 查 询 硬 件 以 识 别 当 前 的 配 置。如 果 有 一 些 识 别 硬 件 的 标 准,这 就 很 简 单 了。在 Borland C 中 对 现 在 所 使 用 的 各 种 显 示 卡 提 供 了 支 持,这 只 要 调 用 detectgraph。函 数 就 可 以 了,该 函 数 为 程 序 员 确 定 计 算 机 上 使 用 的 显 示 卡 类 型。二、选 择 显 示 模 式 显 示 模 式 是 指 显 示 卡 支 持 的 分 辨 率 与 相 应 的 颜 色 配 置。每 台 计 算 机 都 配 置 了 某 种 类 型 显 示 卡,可 以 为 该 显 示 卡 指 定 显 示 模 式。三、图 形 显 示 进 行 图 形 显 示 首 先 要 确 定 显 示 卡,然 后 选 择 其 显 示 模 式。这 些 工 作 都 可 以 调 用 图 形 功 能 函 数 来 完 成,其 实 就 是 把 适 合 于 显 示 卡 的 图 形 驱 动 程 序 装 入 内 存。如 果 图 形 驱 动 程 序 未 装 入 内 存,那 么 图 形 函 数 就 不 能 操 作。20.detectgraph()显 示 卡 检 测 函 数 功 能:函 数 detectgraph()在 计 算 机 上 安 装 有 显 示 卡 的 情 况 下,测 定 其 显 示 卡 的 类 型。用 法:此 函 数 调 用 方 式 为 void detectgraph(int*driver,int*mode);说 明:函 数 把 driver所 指 向 的 整 型 变 量 设 置 为 图 形 驱 动 程 序 的 代 码,把 mode所 指 向 的 整 型变 量 设 置 为 显 示 卡 支 持 的 最 高 有 效 模 式(即 该 显 示 卡 能 支 持 的 最 高 分 辨 率)。该 函 数 相 应 的 头 文 件 为 graphics.h返 回 值:返 回 适 合 于 该 显 示 卡 的 图 形 驱 动 程 序 的 代 码(也 称 等 价 值),并 存 放 在 driver指 向 的 变 量 中。若 计 算 机 系 统 中 无 图 形 硬 件,则 由 driver指 向 的 变 量 设 置 为-2。例:检 测 计 算 机 是 否 装 有 显 示 卡:int driver,mode;detectgraph(&driver,&mode);if(driver=-2)(printf(no graphics adapter in the computer);exit(1);)21.initgraph()图 形 初 始 化 函 数 功 能:函 数 initgraph()用 于 初 始 化 图 形 系 统,把 适 合 的 图 形 驳 动 程 序 装 入 内 存,设 置 图 形 函 数 所 用 的 显 示 模 式。用 法:该 函 数 调 用 方 式 为 void initgraph(int*driver,int*mode,char*path);说 明:1)函 数 中 参 数 driver指 向 图 形 驱 动 程 序(或 者 等 价 值)。在 头 部 文 件 graphics.h中 定 义 了 图 形 驱 动 程 序 的 宏 名 与 其 等 价,如 下:宏 名 等 价 值 DETECT 0CGA 1MCGA 2EGA 3EGA64 4EGAMONO 5IBM8514 6HERCMONO 7ATT400 8VGA 9PC3270 10注:在 现 在 的 计 算 机 中,上 表 中 的 许 多 显 示 卡 已 经 过 时,不 再 使 用。这 样 就 不 必 担 心 图 形 驱 动 程 序 的 准 确 名 字,而 只 要 用 其 等 价 值 即 可,若 使 用 detect(即 等 价 值 0)时,irdtgraphO函 数 自 动 检 测 当 前 计 算 机 中 装 有 的 显 示 卡 类 型,并 且 选 用 最 大 分 辨 率 的 显 示 模 式。2)参 数 mode指 向 显 示 模 式 或 用 等 价 值(风 表 1-5),mode所 指 的 值 必 须 是 有 效 模 式 之 一。3)参 数 path指 向 图 形 驱 动 程 序 所 在 的 路 径,例 如 path=C:TOBG1”.若 没 有 指 定 路 径,就 在 当 前 目 录 下 寻 找。一 般 图 形 驱 动 程 序 包 含 在.BGI文 件 中,这 些 文 件 是 系 统 可 以 得 到 的。这 个 函 数 对 应 的 头 文 件 是 graphics.ho返 回 值:无 例:调 用 iNtgraph。自 动 检 测 硬 件 图 形 系 统,并 选 用 最 大 分 辨 率 显 示 模 式。init drver,mode;driver=DETECT;mode=0;initgraph(&driver,&mode,);22.getdrivername()获 取 图 形 驱 动 程 序 名 的 指 针 功 能:函 数 getdrivername。返 回 指 向 当 前 图 形 驱 动 程 序 名 的 指 针。用 法:此 函 数 调 用 方 式 为 char*getdrivername(void);说 明:本 函 数 可 以 用 来 检 测 显 示 卡,但 只 能 在 initgraph()设 置 图 形 驱 动 程 序 和 显 示 模 式 之 后 调 用。该 函 数 相 应 的 头 文 件 为 graphics.h返 回 值:返 回 一 指 针,指 向 含 有 当 前 图 形 驱 动 程 序 名 的 字 符 串。例:显 示 当 前 图 形 驱 动 程 序 名:#include#includevoid main()(int graphdriver=DETECT,graphmode;char*s;initgraph(&graphdriver,&graphmode,);s=getdrivername();outtext(Using driver:);outtext(s);getch();closegraph();)23.getgraphmode()获 取 图 形 模 式 函 数 功 能:函 数 getgrapgmode。返 回 当 前 图 形 模 式。用 法:该 函 数 调 用 方 式 为 int getgraphmode(void);说 明:getgraphmode。函 数 无 参 数 调 用。这 个 函 数 对 应 的 头 文 件

    注意事项

    本文(C 语言图形编程.pdf)为本站会员(奔***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开