c语言图形方式下的编程.doc

C语言图形方式下的编程

学习目标

·了解PC显示系统的结构

·C语言图形初始化的一般方法

·C语言常用的图形处理函数

显示系统简介

PC机显示系统一般是由显示器和显示卡组成。显示器(Monitor)是独立于主机的一种外部设备。显示卡(Adapter)是插在Pc主机上的一块电路板。PC机对显示屏幕的所有操作都是通过显示卡来实现的。

显示系统的主要特性

1.显示分辨率

显示分辨率是指屏幕上所能显示的像素点数,通常用列数和行数的乘积宋表示。为了获得良好的显示效果,要求显示器的分辨率与对应分辨率的显示卡相匹配。通常,高分辨率的显示效果比低分辨率的效果好。但是,显示分辨率的提高对显示器与显示卡的硬、软件要求更高。特别是分辨率的提高在很大程度上受到显示器的显示尺寸和扫描频率的限制,也受到显示卡的显存的限制。

根据应用情况的不同,在不超过显示器最高分辨率的条件下,可以通过对显示卡的设置而使用不同的分辨率。

2.显示速度

显示速度是指在屏幕上显示图形和字符的速度。显示速度与显示分辨率和显示器的扫描频率密切相关。显示分辨率越高,整个屏幕上的像素点数就越多,显示速度就越慢。在这种情况下,为了提高显示速度,就需要提高扫描频率。

如果显示器只有一种扫描频率,则它只能与一种显示卡相匹配使用。随着显示技术的发展,目前一般的显示器可以适应具有多种分辨率与显示速度的显示卡。

颜色与灰度是衡量显示系统的重要参数。单色显示器只有亮和暗两种灰度;彩色显示器的颜色和灰度要受显示内存的限制,分辨率越高,颜色越丰富,所需要的显示内存就越多。

4.图形显示能力

图形显示能力是显示系统对屏幕上的每一个像素点都可以设置成不同的值的能力。通常,图形显示对硬件的要求比字符显示要求高得多,同时,图形显示对显示缓冲区的要求也比字符显示时高得多。

显示卡的种类

常用的显示卡有以下几种

1.MDA卡

MDA卡(Monochrome Display Adapter——单色字符显示器适配卡)与单色字符显示器配接,它只支持字符显示功能,无图形功能。

2.HGC卡

HGC卡(Hercules Graphics Card——单色显示图形卡)不仅支持字符显示,而且支持单色图形功能。在图形方式下,其图形显示分辨率最高可达720~348点阵。通过软件的设置,还可以支持640~400单色图形显示以及模拟CGA卡图形方式。

3.CGA卡

CGA卡(ColorGraphicsAdapter--彩色图形显示卡)支持字符/图形两种方式。

在字符方式下,它支持80列、25行及奶列、25行的方式,颜色可选16种。但是字符的质量比较差,只有8X8点阵。在图形方式下,它支持最大为640~200分辨率,但只有黑、白两种颜色。此外,它还支持320~200的分辨率,每个像素点可以有四种颜色。CGA卡有16K的显示缓冲区,用于显示字符及属性或图形方式下的图形数据。

4.EGA卡

EGA卡(Enhanced Graphics Adapter——增强型图形显示卡)的字符显示能力和图形显示能力都比CGA卡有了较大的提高,显示分辨率达到640~350,最高分辨率图形方式的颜色达到了16种。EGA卡的显示模式也比CGA卡丰富,并且兼容CGA卡及MDA卡的显示模式。

5.VGA卡

VGA卡(Video Graphics Array一一视频图形阵列)是一种功能十分强大、颜色丰富的显示卡。VGA的标准分辨率可达到640~480,并且具有16种颜色。一些兼容的VGA卡(如TVGA卡、EVGA卡)的分辨率可达640~480(256种颜色)、800~600(16种颜色)或1024~768(16种颜色)。VGA卡兼容MDA卡、CGA卡、EGA卡的所有显示模式。

随着显示技术的发展,目前的显示卡的分辨率一般都可以达到1024X768,显示32位真彩(232种颜色)。

视频BIOS

视频BIOS(BasicI/OSystem基本输入/输出系统)是与显示卡配套的一个重要组成部分。用户通过调用它可以完成一些与显示有关的控制功能。对于要用到显示系统的一般程序设计都可以通过调用视频BIOs或视频函数库来完成。但要想获得更高性能的显示程序,还需要对显示卡的寄存器和显示内存直接进行编程。

显示模式

显示模式按功能可以分为字符模式和图形模式两大类。

字符模式也称为字母数字模式,即A/N模式(A1phaNumbermode)。在这种模式下,显示缓冲区中存放的是显示字符的代码和属性,而显示屏幕被分为若干个字符显示行和列。图形模式(Graphics mod

c语言图形方式初始化,c语言图形方式下的编程.doc相关推荐

  1. C/C++ | C语言字符数组初始化,有些赋值方式千万注意

    一.字符数组的定义和初始化 字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素. charstr[10]={'I','','a','m','','h','a','p','p','y'}; ...

  2. golang 初始化并赋值_Go语言创建、初始化数组的常见方式汇总

    本文实例总结了Go语言创建.初始化数组的常见方式.分享给大家供大家参考.具体分析如下: Go语言的语法很灵活,以下展示了创建并初始化数组的多种方式: //数组初始化的各种方式 func arraySl ...

  3. c语言 结构体 初始化,C语言结构体初始化

    C语言结构体初始化教程 在 C语言结构体初始化 语法 struct structName varName = {fileldValue1, fileldValue2, fileldValue3}; 参 ...

  4. 杭电第七次作业c语言短学期,杭电短学期:算法与编程.doc

    杭电短学期:算法与编程.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档 ...

  5. c语言long型数组怎么初始化,C语言中数组初始化的三种方式是什么?

    C语言中,数组初始化的方式主要有三种: 1.声明时,使用 {0} 初始化: 2.使用memset: 3.用for循环赋值. 那么,这三种方法的原理以及效率如何呢? 请看下面的测试代码:#define ...

  6. C语言中文件初始化,C语言版GetPrivateProfileString()函数,从初始化文件中指定的条目取得字串...

    /*************************************************************** /* 函 数 名:GetPrivateProfileString /* ...

  7. ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决

    ubuntu16.04在英文状态下安装中文语言包的过程(法一:图形界面的方式) 以及 安装中文语言包后无法选择汉语问题的解决 参考文章: (1)ubuntu16.04在英文状态下安装中文语言包的过程( ...

  8. C语言运行界面字体,C语言实现图形界面登陆窗口.docx

    纯C语言实现图形界面登陆窗口 一下是界面图: 编程工具是:VC6.0 请根据个人需要对源代码进行修改使用,图片放在工程文件夹中.新建时应该将文件后缀设置为.cpp 以下是程序灯源代码: #includ ...

  9. c语言 图形界面 入门,C语言是怎么实现图形界面的?

    GTK就可以,一个基于C语言的免费.开源.跨平台图形工具包,可以直接使用C语言调用实现图形界面开发,下面我简单介绍一下这个工具包的安装和使用,这里以Windows平台为例: 1.首先,下载GTK安装包 ...

最新文章

  1. android中仿qq最新版抽屉,Android 自定义View实现抽屉效果
  2. 使用Github搜索开源项目
  3. 激光slam-- .pgm格式地图分析及修改方法
  4. Windows 2008远程桌面配置多用户登陆的方法
  5. pip install时出现问题,ERROR: Could not install packages due to an OSError: ./lib/python3.7/site-packages
  6. Spring Security 理解小记
  7. Android Multimedia框架总结(十九)Camera2框架C/S模型之CameraService启动及与Client连接过程
  8. NULL值的处理注意不同数据库区别
  9. java pkcs1转pkcs8_openssl生成RSA格式及pkcs1与pkcs8格式互相转换
  10. mysql计算增长率
  11. 微信、企业微信分享按钮隐藏问题
  12. 工具--Typora详解
  13. 全宇宙最强AI 聊天机器人模型ChatGPT惊艳来袭,你还不上车?居然能写演讲稿和帮忙写代码
  14. OpenGL 透视投影 齐次裁剪空间 深度缓存
  15. 一个计算机网络题目——给局域网分配合适的网络前缀。
  16. MysqlOracle中的日期
  17. HTTP长连接,短链接,持久连接的区别
  18. 通过ZPL指令调用zebra打印机打印面单(java版)
  19. android 虚拟键盘高度,获取Android中虚拟键盘的高度
  20. 新一代虚拟现实数据手套 FOHEART H1

热门文章

  1. c 与java的区别_C/C++与java的区别
  2. Python使用matplotlib函数subplot可视化多个不同颜色的折线图、在折线图上为每个数据点添加数值标签
  3. R语言dplyr包和tidyr包创建交叉表(列联表、crosstab)实战
  4. 文件名批量汉字转拼音+核磁共振影像数据处理
  5. 决策树(Decision Tree)、决策树的构建、决策树流程、树的生长、熵、信息增益比、基尼系数
  6. 与php代码类似,类似于PHP的代码_html/css_WEB-ITnose
  7. The Pediatric Cancer Genome Project   儿童癌症基因组计划
  8. 第四章 遗传变异的分类
  9. sysbench tpcc-mysql_使用sysbench来测试MySQL性能的详细教程
  10. html 移动端(手机)调试 vconsole