第2章简单图形软件包1.ppt
《第2章简单图形软件包1.ppt》由会员分享,可在线阅读,更多相关《第2章简单图形软件包1.ppt(68页珍藏版)》请在三一办公上搜索。
1、第2章 一个简单的二维光栅图形软件包,SRGP(Simple Raster Graphics Package),2,知识点:扫描转换 图元的声明 图元的属性控制 获取用户输入的两种方法 简单的交互程序的结构 画布 裁剪窗口 位块拷贝 显示模式,3,要求:掌握扫描转换、画布、裁剪窗口等概念;掌握图元(点、直线段、折线、标记、圆弧、椭圆弧、字符)的含义及其参数指定方式;掌握如何对图元进行属性(线型、线宽、颜色等)控制;了解用来获取用户输入的两种基本方式:取样方式和事件驱动方式了解如何通过如上两种输入方式设计简单的交互式绘图程序;了解位块拷贝功能;掌握4种基本的显示模式:覆盖、或、异或、与。,4,矢
2、量显示(随机扫描显示器)和光栅显示是两种完全不同的图形显示技术 目前,光栅显示技术占主要地位 1、光栅显示可以用颜色或图案来填充一个区域;2、光栅显示以象素为单位进行读写和存储,可以实现对物体细节的描述;3、图形的任意部分均可以被移动和复制。,2.1 用图形软件包绘图2.2 基本的交互处理2.3 光栅操作,应用模型,应用程序,SRGP,图形硬件设备,输出流,输入流,2.1 用图形软件包绘图,图元的声明图元的属性填充图元及属性保存和恢复图元的属性字符,2.1 用图形软件包绘图,2.1.1 图元的声明绘图纸,屏幕,坐标系扫描转换:将顶点(参数表示的图形)转换为点阵(像素)表示的图形,2.1 用图形
3、软件包绘图,基本图元绘制:点、直线段、折线、多边形、圆弧、字符。数据类型:struct Point int x,y;typedef int*VertexCoordList;或typedef Point*VertexList;,1.点、直线段和折线Void PutPixel(int x,int y,int color);/画点函数,color:颜色值。Void LineCoord(int x0,int y0,int x1,int y1);Void Line(Point*pt1,Point*pt2);/画线函数,Void polylineCoord(int vertexCount,VertexCo
4、ordList xArray,VertexCoordList yArray);Void polyline(int vertexCount,VertexList vertices);/画折线函数。polyline(6,bowtieArray);,2.标记Void MarkerCoord(int x,int y);Void Marker(Point*pt);/端点做标记。3.多边形和矩形Void Polygon(int VertexCount,VertexList vertices);/画多边形。,,*,12,三种不同的方式:Void RectangleCoord(int leftx,int bo
5、ttom Y,int right X,int topY);Void RectanglePoint(Point*leftBottom,Point*rightTop);Void Rectangle(Rectangle*rect);/画矩形Typedef struct Point leftBottom,rightTop;Rectangle,4.圆弧和椭圆弧Void CircleArc(Point*center,int radius,int startAngle,int endAngle);/画圆弧Void EllipseArc(Rectangle*externRect,int startAngle,
6、int endAngle);/画椭圆,作为对比,vc提供了画图函数画点画线折线圆弧椭圆圆填充等,Vc绘图简介,15,绘图点,用坐标画点:pDC-SetPixelV(10,15,RGB(255,0,0);用点画点:CPoint Point;Point.x=10;Point.y=15;pDC-SetPixelV(Point,RGB(255,0,0);,画点举例,坐标,颜色,点,颜色,17,程序代码画线函数,X1,Y1,X2,Y2,用坐标画线:pDC-MoveTo(0,0);pDC-LineTo(100,150);,画线举例,坐标,用点画线:CPoint Point1;CPoint Point2;P
7、oint1.x=0;Point1.y=0;Point2.x=100;Point2.y=150;pDC-MoveTo(Point1);pDC-LineTo(Point2);,画线举例,点,Point1,Point2,例:,20,绘图圆弧函数,x1,y1,x2,y2,x3,y3,x4,y4,x3,y3和x4,y4为圆弧起点终点,x1,y1和x2,y2为圆弧的矩形框,可计算半径,逆时针方向,21,例:,ps,pe,圆弧举例,22,绘图椭圆函数(画整圆),绘图整圆,x1,y1,x2,y2,x1,y1和x2,y2为圆弧的矩形框,可计算半径,24,画整圆举例,例:,2.1.2 图元属性,图元的外观由属性决
8、定,属性是全局状态变量。1.线型和线宽Void SetLineStyle(enum LineStyle lineStyle);枚举变量 lineStyple预定义线型:CONTINUOUS(实线)、DASHED(虚线)、DOTTED(点线)Void SetLineWidth(int lineWidth);,2.1.2 图元属性,图元在显示时被扫描转换成离散的像素写入帧缓冲器中,线型控制可看作有选择地写像素的位屏蔽器.位屏蔽器为0表示帧缓存中相应的像素值不变(即透明),为1表示用线段的颜色值代替帧缓存中相应的像素值。,图元属性,2.颜色SRGP中,设置颜色属性有三种方式:三种指定颜色的方式通过查
9、色表索引值通过颜色名称通过红、绿、蓝三分量Void SetColorByName(cnum Colors colorName);/使用逻辑颜色名,实际对应的颜色取决于系统查色表,逐段定义线色号,图元属性,Void SetColor(int colorIndex);/直接使用整数值来指定,colorIndex即是指向查色表某表项的索引值Void SetColor(int red,int green,int blue);/直接赋颜色分量值(对真彩色系统而言),2.1.3 填充图元及其属性,封闭的图元有二种绘制方式-线画图:只画出边框;-填充图:填充其内部区域;Void FillRectangle(
10、Rectangle*rec);/矩形Void FillPolygon(int vertexCount,VertexList Vertices);/多边形Void FillEllipse(Rectangle*extentRect);/椭圆Void FillEllipseArc(Rectangle*extentRect,int startAngle,int endAngle);/扇形,区域填充属性,填充式样:,空心,实心,图案,区域填充属性,填充颜色,填充图案,填充方式设置(控制填充图元的外观)Void SetFillStyle(enum FillStyle fillstyle)/设置填充方式的函
11、数 FillStyle定义如下:enum FillStyleSOILD,/以当前前景色均匀填充图元BITMAP_PATTERN_OPAQUE,BITMAP_PATTERN_TRANSPARENT,/以规则排列的位图填充;PIXMAP_ PATTERN/以规则排列的像素图填充;位图:二值图像 像素图:多值图像SRGP提供位图/像素图资源表,2.1.3 填充图元及其属性(续),以规则排列的位图填充BITMAP_PATTERN_OPAQUE/不透明方式,对应位图中“1”的像素用前景色(即当前设定的颜色)显示;对应位图中“0”的像素用背景色显示。背景色由函数void SetBackgroundColo
12、r(int colorIndex)设定。BITMAP_PATTERN_TRANSPARENT/透明方式,对应位图中“1”的像素依然用前景色显示;对应位图中“0”的像素,颜色保持不变。,无论是以位图还是像素图填充图元,图元所呈现的颜色总依赖于当前系统查色表的内容,因为位图/像素图中保存的仅仅是颜色的索引值。,2.1.4 保存和恢复图元的属性,目的:为了提高程序的模块化程度 Void InquireAttributes(AttributeGroup*group);Void SetAttributes(AttributeGroup*group);/AttributeGroup 为SRGP定义的结构,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 图形 软件包
链接地址:https://www.31ppt.com/p-5641135.html