您好,欢迎来到刀刀网。
搜索
您的当前位置:首页graph单元

graph单元

来源:刀刀网
 在Turbo Pascal中有一个CRT单元及一个GRAPH单元,有些图形操作用到了CRT单元,另一些用到了GRAPH单元。所以若是要在Turbo Pascal中实现图形操作,就必须要调用CRT单元及GRAPH单元。那么怎么样来调用CRT及GRAPH单元呢?现在线来介绍一下单元调用语句:USES USES的语法:

USES 单元表识符,……,单元表识符; 说明:

扩展名为*.TPW是Windows下的单元文件,*.TPU是DOS下的单元文件。 位置:变量说明var之前。

1.初始化

Pascal的图形操作在使用之前必须先进行初始化,用过程

initgraph(GraphDriver,GraphMode,PathToDriver)其中GraphDriver,GraphMode为整形变量,PathToDriver为字符串变量,GraphDriver为图形驱动器,GraphMode为图形模式,PathToDriver指定的路径名中建筑图形驱动程序(以.BGI为后缀).initgraph使用方法见下例: program t001 (input,output); uses crt,graph; var

gd,gm:integer; {定义GraphDriver,GraphMode变量} begin gd:=detect;

initgraph(gd,gm,''); {调用initgraph过程,PathToDriver缺省则表示在当前目录中寻找} bar(100,100,200,200); {画一个以(100,100),(200,200)为顶点的矩形}

delay(1000); {将此图形保留一秒} end.

2.退出

Closegraph过程 功能:退出图形模式.

画直线: 1.Line过程

描述:procedure Line(x1, y1, x2, y2: Integer);两点确定一直线.够简单吧! 2.Lineto过程

描述:procedure LineTo(X, Y: Integer);从当前点项目标点(x,y)作直线.

画圆:Circle过程

功能:以(X,Y)为圆心、Radius为半画一圆。 描述:procedure Circle(X,Y:Integer;Radius:Word);

示例:Circle(100,100,200) {画一个以(100,100)为圆心,200为半径的圆}

画椭圆:Ellipse过程

功能:画一个以(X,Y)为中心,XRadius和YRadius为半轴,StAngle和EndAngle为始角和终角的椭圆弧。

描述:procedure Ellipse(X,Y:Integer;StAngle,EndAngle:Word;XRadius,YRadius:Word); 说明:角度沿逆时针方向,单位是度。0度指向东。

画圆弧: Arc过程

功能: 画一个以(X,Y)为中心,Radius为半径,StAngle和EndAngle为始角和终角 的圆弧。 描述: procedure Arc(X,Y : Integer; StAngle,EndAngle,Radius:Word); 说明: 角度沿逆时针方向,单位是度。0度指向东。

示例: Arc(100,100,0,90,50) {画出第一卦限1/4圆,半径50,圆心(100,100)}

画矩形: 1.Bar过程

功能:画一个以(x1,y1),(x2,y2)为两个对角顶点的矩形。 描述:procedure Bar(x1,y1,x2,y2:integer);

示例:Bar(100,100,200,200) {画一个以(100,100),(200,200)为对角顶点的矩形} 2.Bar3d过程 功能:画一个长方体.

描述:procedure Bar3d(x1,y1,x2,y2:integer,depth:word,top:boolean); {x1,x2,y1,y2同上,为长方体的厚度 ,top为是否画出顶面.}

一、线形设置: 1.setlinestyle过程 功能:设置线形,及线宽。

描述:procedure SetLineStyle(LineStyle: Word; Pattern: Word; Thickness: Word); 说明:linestyle(线形)一共有三种.代号0,1,2;线形如下图: Thichness(线宽)有两种:普通线,宽线。

2.GetLineSettings过程

功能:返回当前设置的线型设置信息。

描述:procedure GetLineSettings(var LineInfo: LineSettingsType);{参见LineSettingsType类型}

3.LineSettingsType类型 描述:LineSettingsType = record LineStyle : Word; {线形} Pattern : Word; {模式} Thickness : Word; {线宽} end;

此类型记录了一种线形的信息.

二、颜色设置:

在pascal有16种颜色可以使用. 如图所示:(第15种为白色,黑色未列入)

1.setcolor过程

描述: procedure SetColor(Color: Word); 设置线的颜色.颜色代码如上图.

2.GetColor函数

功能:返回最后一次作图时的颜色值 描述:function GetColor:word 示例:color:=GetColor; {color:word}

3.GetMaxColor函数

功能:返回系统可用的最大颜色数。

描述:num:=GetMaxColor; {将最大颜色数存到num变量中}

三、填充设置:

1.SetFillStyle过程

功能 设置填充模式和颜色。

描述 procedure SetFillStyle(Pattern:Word;Color:Word);

说明 设置用于Bar,Bar3D的填充模式和颜色。可生系列填充模式。缺省模式是实心点,缺省模式是实心点,缺省颜色是调色板中最大颜色序号值。如果传递给SetFillStyle的输入参数无效,GraphResult将

返回值grError,且当前填充参数不改变。 填充设置如下图:

2.FillSettingsType 类型 描述:FillSettingsType=record Pattern:word; Color :word; end;

此类型记录了一种填充模式的信息.

RestoreCrtMode; 切换到我们常用的文本模式。SetGraphMode(GetGraphMode); 切换到作图方式, 不能在closegraph关闭图形之后用。

procedure Arc (坐标X,坐标Y;Integer;开始角度,结束角度,半径; Word); 备注:画弧

procedure Bar(坐标x1,坐标y1,坐标x2,坐标y2: Integer); 备注:画一个已填充的正方形

procedure Bar3D(坐标x1,坐标y1,坐标x2,坐标y2:Integer;高:Word;有没有顶:Boolean); 备注:画立方体

procedure Circle(坐标X,坐标Y:Integer;半径:Word); 备注:画圆

procedure ClearDevice;

备注:把指示器移到(0,0),用背景颜色去清屏,准备输出

procedure ClearViewPort;

备注:把填充颜色变为背景色,把指示器移到(0,0)

procedure CloseGraph 备注:关掉图象(garph)模式

procedure DetectGraph(var 驱动器,模式:Integer); 备注:检查硬件和找出用哪个驱动器和模式

procedure DrawPoly(点数: Word; var 坐标:PolyPoints); 备注:画多边形

procedure Ellipse(坐标X,坐标Y:Integer;开始角度,结束角度:Word;半径1,半径2:Word);

备注:画椭圆

procedure FillEllipse(坐标X,坐标Y:Integer;半径1,半径2: Word); 备注:画一个已填充的椭圆

procedure FillPoly(点数: Word; var 坐标:PolyPoints); 备注:画一个已填充的多边形

procedure FloodFill(坐标X,坐标Y:Integer;边界颜色: Word); 备注:填充一个边界的区域

procedure GetArcCoords(var 记录变量: _ArcCoordsType_); 备注:得到上一次画弧时的开始坐标,结束坐标和圆心坐标

procedure GetAspectRatio(var 比例X,比例Y:Word); 备注:得到屏幕高宽的比例

function GetBkColor: Word; 备注:返回当前的背景颜色

function GetColor: Word; 备注:得到当前的画图颜色

function GetDefaultPalette(var 记录变量: PaletteType); 备注:得到默认的颜色记录

function GetDriverName: string; 备注:得到驱动器的名字

procedure GetFillPattern(var 记录变量: FillPatternType); 备注:得到填充的模式

procedure GetFillSettings(var 记录变量: FillSettingsType); 备注:得到填充的设置

function GetGraphMode: Integer; 备注:得到图形的模式

procedure GetImage(坐标x1,坐标y1,坐标x2,坐标y2:Integer;var 位图:pointer); 备注:把一个指定区域里的一小片图象保存在缓冲器里

procedure GetLineSettings(var 记录变量: LineSettingsType); 备注:得到线的设置

function GetMaxColor: Word; 备注:得到最大的颜色

function GetMaxMode: Integer; 备注:得到最大的模式

function GetMaxX: Integer; 备注:得到最大的X坐标

function GetMaxY: Integer; 备注:得到最大的Y坐标

function GetModeName(模式序号: Integer): string; 备注:得到模式名

procedure GetModeRange(图象驱动:Integer; var 最小模式,最大模式:Integer); 备注:得到模式范围

procedure GetPalette(var 记录变量: PaletteType); 备注:得到当前的颜色记录

function GetPaletteSize: Integer;

备注:得到屏幕中颜色记录的尺寸

function GetPixel(坐标X,坐标Y: Integer): Word; 备注:得到(X,Y)的颜色

procedure GetTextSettings(var 记录变量: TextSettingsType); 备注:得到文字设置

procedure GetViewSettings(var ViewPort: ViewPortType); 备注:得到显示设置

function GetX: Integer;

备注:得到当前指示器的X坐标

function GetY: Integer;

备注:得到当前指示器的Y坐标

procedure GraphDefaults;

备注:把graph的所有设置变为原始状态

function GraphErrorMsg(错误号: Integer): string; 备注:返回指定错误号的信息

function GraphResult: Integer; 备注:返回最后一次画图时的错误号

function ImageSize(坐标x1,坐标y1,坐标x2,坐标y2:坐标Integer):坐标Word; 备注:返回一片区域储存所许的字节数

procedure InitGraph(var 驱动器:Integer;var 模式:Integer;到驱动器的路径:string); 备注:graph初始化

procedure Line(坐标x1,坐标y1,坐标x2,坐标y2:Integer); 备注:画线

procedure LineRel(坐标Dx,坐标Dy:Integer);

备注:画一条到指示器的线,坐标是对于指示器为(0,0)来说的

procedure LineTo(坐标X,坐标Y:Integer); 备注:画一条到指示器的线

procedure MoveRel(坐标Dx,坐标Dy: Integer);

备注:把指示器依到(Dx,Dy),坐标是对于指示器为(0,0)来说的

procedure MoveTo(坐标X,坐标Y: Integer); 备注:把指示器依到(x,y)

procedure OutText(字符串: string); 备注:在指示器位置上输出字符串

procedure OutTextXY(坐标X,坐标Y: Integer;字符串: string); 备注:在(x,y)位置输出字符串

procedure PieSlice(坐标X,坐标Y:Integer;开始角度,结束角度,半径:Word); 备注:画一个已填充的扇形

procedure PutImage(坐标X,坐标Y:Integer;var 位图:pointer;BitBlt:Word); 备注:把一个图象显示到显示器上,BitBlt处可为NormalPut,XORPut或者NotPut

procedure PutPixel(坐标X,坐标Y: Integer;颜色: Word); 备注:在(X,Y)上显示一个1*1的正方形

procedure Rectangle(坐标x1,坐标y1,坐标x2,坐标y2: Integer); 备注:画正方形

procedure RestoreCrtMode;

备注:恢复到刚初始化时的状态

procedure Sector(坐标x,坐标y:Integer;开始角度,结束角度,半径X,半径Y:Word); 备注:画一个已填充的椭圆部分

procedure SetActivePage(Page: Word); 备注:设置当前画图所在的页

procedure SetAllPalette(var Palette); 备注:把所有颜色设置变为特定的

procedure SetBkColor(颜色: Word); 备注:设置背景颜色

procedure SetColor(颜色: Word); 备注:设置颜色

procedure SetFillPattern(记录变量: FillPatternType;颜色:Word); 备注:设置填充颜色模式

procedure SetFillStyle(模式: ord;颜色: Word); 备注:设置填充颜色风格

procedure SetLineStyle(线风格:Word;模式:Word;厚度:Word); 备注:设置线的风格

procedure SetPalette(颜色序号:Word;颜色:Shortint); 备注:设置调色版

procedure SetTextStyle(字体,方向:Word;大小:Word); 备注:设置文字风格

procedure SetVisualPage(Page: Word); 备注:设置当前显示的页

procedure SetWriteMode(写字模式: Integer); 备注:设置写字模式

function TextHeight(字符串: string): Word; 备注:文字的高

function TextWidth(TextString: string): Word; 备注:文字的宽

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.com 版权所有 湘ICP备2022005869号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务