3一个简单的形软件包.pptVIP

  • 1
  • 0
  • 约4.27千字
  • 约 35页
  • 2017-06-12 发布于河南
  • 举报
3一个简单的形软件包

第三章 一个简单的二维光栅图形软件包;主要内容;3.1 用图形软件包绘图;图元的声明 绘图纸,屏幕, 坐标系 扫描转换:将顶点(参数表示的图形)转换为点阵表示的图形;基本图元: 点、直线段、折线、多边形、 圆弧、字符、标记符号。 数据类型: Struct Point{ int x, y;} typedef int * VertexCoordList; typedef Point *VertexList;;Void PutPixel(int x, int y, int color); //画点函数,color :颜色值。 Void LineCoord(int x0, int y0,int x1,int y1); Void Line (Point *pnt0, Point * pnt1); //画线函数 用端点描述直线段更自然、方便,故定义了一个名为Point的数据类型: Typedef struct {int x,y}Point;Void polylineCoord( int vertexCount, VertexCoordList xArray, VertexCoordList yArray); Void polyline(int vertexCount, VertexList vertices) //画折线函数。 vertexCount为顶点个数,xArray,yArray为存储折线顶点的x坐标、y坐标的数组;vertices为Point类型的顶点数组 ;(2)多边形和矩形;Void CircleArc(Point *center, int radius, int startAngle,int endAngle) //画圆弧 Void EllipseArc(Rectangle *externRect, int startAngle,int endAngle) //画椭圆 ;Void MarkerCoord(int x, int y); Void Marker(Point *pt); //端点做标记。 Void PolyMarkerCoord(int vertexCount, VertexCoordList xArray, VertexCoordList yArray) Void PolyMarker(int vertexCount, VertexList vertices) ;3.1.2 图元属性;SetLineWidth(1); LineCoord(55,5,105,295); //line a SetLineStytle(DASHED); SetLineWidth(5); LineCoord(105,5,155,295); //line b SetLineWidth(10); SetLineStytle(DOTTED); LineCoord(155,5,255,295); //line c;SRGP中,设置颜色属性有三种方式: 三种指定颜色的方式 通过查色表索引值 通过颜色名称 通过红、绿、蓝三分量 Void SetColorByName(cnum Colors colorName); //使用逻辑颜色名,实际对应的颜色取决于系统查色表 Void SetColor(int colorIndex); //直接使用整数值来指定,colorIndex即是指向查色表某表项的索引值 Void SetColor(int red, int green, int blue); //直接赋颜色分量值(对真彩色系统而言) ;3.1.3 填充图元及其属性;填充方式设置(控制填充图元的外观) Void SetFillStyle(enum FillStyle fillstyle) FillStyle定义如下: enum FillStyle{ SOILD, //以当前前景色均匀填充图元 BITMAP_PATTERN_OPAQUE, // 以规则排列的位图填充; BITMAP_PATTERN_TRANSPARENT, PIXMAP_ PATTERN} //以规则排列的像素图填充; 位图:二值图像 像素图:多值图像 SRGP提供位图/像素图资源表;以规则排列的位图填充 BITMAP_PATTERN_OPAQUE //不透明方式 对应位图中“1”的像素用

文档评论(0)

1亿VIP精品文档

相关文档