Science 版 (精华区)

发信人: qpcwth (独翅鸟), 信区: Science
标  题: 《分形艺术》31
发信站: 哈工大紫丁香 (2001年11月03日18:07:57 星期六), 站内信件

第三章 计算机上作图
3.9 图形初始化
    以Borland公司的PASCAL为例,在计算机上作图如果想把图形显示到屏幕上(读者可
能以为这纯粹是废话,难道不往屏幕上显示吗?其实未必,我们可以直接将图形数据存到
内存或者文件中去,这是后话),则需要用到计算机的图形方式(graphics mode)。图形
方式是与文本方式相对的一种图形界面,在此界面上可以向屏幕输出象点、字符等。其
实,图形方式也有很多种,微软公司的Windows平台整个都工作在图形界面下。我们只介
绍DOS下的图形方式,这也是最简单的一种。
    PASCAL图形方式用到图形单元Graph.TPU,在程序开始处的uses语句中必须声明程序
将使用G raph.TPU。PASCAL程序执行时可以在文本方式与图形方式之间相互切换。但真
正启动图形方式必须用“图形初始化”语句InitGraph,此语句的具体形式为:
InitGraph(var GraphDriver:Integer; var GraphMode: Integer; PathToDriver: str
ing) ;
此语句包括三个参数:图形驱动器(Graphics Driver)、驱动模式(Graphics Modes for
 Eac h Driver)和路径串。前两者都是整数,后者是一字符串(标明图形接口*.BGI在磁
盘上的位 置)。InitGraph语句如果执行成功,则启动图形方式,直到使用CloseGraph语
句关闭图形方式为止。在PASCAL中,{}内是程序中的“说明”,它们不参加编译,只
为了阅读方便。但在C和C++语言中{}的含义完全不同。下面是PASCAL自带的一个图形
初始化例子:
{ Example for InitGraph }
usesGraph;
var
grDriver : Integer;
grMode : Integer;
ErrCode : Integer;
begin
grDriver := Detect;
InitGraph(grDriver,grMode,'');
{假定驱动程序*.BGI在当前目录}
ErrCode := GraphResult;
if ErrCode = grOk then
begin
{ Do graphics }
Line(0, 0, GetMaxX, GetMaxY);
ReadLn;
CloseGraph;
end
else
WriteLn(' Graphics error:',GraphErrorMsg(ErrCode));
end.
如果用VGA 640×480方式初始化图形,并且EGAVGA.BGI存放在D:\PASCAL子目录下,则I
nitGraph语句可写作:
gd:=VGA;
gm:=VGAHi;
InitGraph(gd,gm,'D:\PASCAL');
图形初始化语句第一个参数与第二个参数的选取详见表3.1与表3.2。
表3.1 图形驱动器及编号
驱动器常量Constant 取值Value 说明Comment
CurrentDriver -128 For GetModeRange
Detect 0 请求自动探测
CGA 1 过去曾普遍使用
MCGA 2  
EGA 3  
EGA64 4  
EGAMono 5  
IBM8514 6 要求使用专用显示卡
HercMono 7 大力神单色显示
ATT400 8  
VGA 9 目前使用最广
PC3270 10  
 
表3.2 对应于每一种驱动器的图形模式一览表
常量Constant 取值Value 含义Meaning
CGAC0 0 320×200
CGAC1 1 320×200
CGAC2 2 320×200
CGAC3 3 320×200
CGAHi 4 640×200
MCGAC0 0 320×200
MCGAC1 1 320×200
MCGAC2 2 320×200
MCGAC3 3 320×200
MCGAMed 4 640×200
MCGAHi 5 640×480
EGAMonoHi 3 640×350
HercMonoHi 0 720×348
VGALo 0 640×200
VGAMed 1 640×350
VGAHi 2 640×480
EGALo 0 640×200
EGAHi 1 640×350
EGA64Lo 0 640×200
EGA64Hi 1 640×350
ATT400C0 0 320×200
ATT400C1 1 320×200
ATT400C2 2 320×200
ATT400C3 3 320×200
ATT400Med 4 640×200
ATT400Hi 5 640×400
IBM8514Lo 0 640×480
IBM8514Hi 1 1024×768
PC3270Hi 0 720×350
    1996年比较常用的图形方式是VGA 640×480 16色。主板具有VESA或者PCI总线结构
的微机,显示缓存1M以上,通常可以驱动SuperVGA 1024×768 256色,用这种分辨率的
图形界面作 分形图形是比较令人满意的,一般说来象素个数和色彩都够用。
 

--
心事浩茫连广宇,于无声处听惊雷

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.229.154]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.371毫秒